home *** CD-ROM | disk | FTP | other *** search
/ HPAVC / HPAVC CD-ROM.iso / INTER53A.ZIP / INTERRUP.A < prev    next >
Text File  |  1997-01-12  |  361KB  |  9,130 lines

  1. Interrupt List            Release 53        Last change 12jan97
  2. Copyright (c) 1989,1990,1991,1992,1993,1994,1995,1996,1997 Ralf Brown
  3. --------!---FILELIST-------------------------
  4. Please redistribute the following files unmodified as a group, in a quartet of
  5. archives named INTER53A through INTER53D (preferably the original authenticated
  6. PKZIP archives):
  7.     INTERRUP.1ST    the read-me file, containing credits, availability info
  8.     INTERRUP.A    INT 00 through INT 13/17  \
  9.     INTERRUP.B    INT 13/18 through INT 15/12\
  10.     INTERRUP.C    INT 15/13 through INT 16/FE \
  11.     INTERRUP.D    INT 16/FF through INT 21/0F  \
  12.     INTERRUP.E    INT 21/10 through INT 21/4B   \      total 2234 pages at
  13.     INTERRUP.F    INT 21/4C through INT 21/E1    \  60 lines per page,
  14.     INTERRUP.G    INT 21/E2 through INT 21/F1    \ 2381 with INTPRINT -p
  15.     INTERRUP.H    INT 21/F2 through INT 21/FF     >(8327 entries)
  16.     INTERRUP.I    INT 22 through INT 2F/16    / (3519 tables)
  17.     INTERRUP.J    INT 2F/17 through INT 2F/B7    /
  18.     INTERRUP.K    INT 2F/B8 through INT 32      /
  19.     INTERRUP.L    INT 33 through INT 60         /
  20.     INTERRUP.M    INT 61 through INT 62        /
  21.     INTERRUP.N    INT 63 through INT 78       /
  22.     INTERRUP.O    INT 79 through INT 7F      /
  23.     INTERRUP.P    INT 80 through INT FF     /
  24.     INTERRUP.PRI    a brief introduction to interrupts
  25.     INTPRINT.COM    a simple formatter that also generates a list summary
  26.     INTPRINT.DOC    instructions for INTPRINT
  27.     OVERVIEW.LST    brief listing of major uses of each interrupt
  28.     86BUGS.LST    a listing of CPU bugs and undocumented features
  29.     BIBLIO.LST    bibliography of information sources for the list
  30.     CMOS.LST    a description of the CMOS RAM data bytes
  31.     FARCALL.LST    APIs available through FAR CALLs
  32.     GLOSSARY.LST    a glossary of terms, abbreviations, and acronyms
  33.     MEMORY.LST    format of the BIOS data area
  34.     OPCODES.LST    a listing of recent and undocumented CPU instructions
  35.     PORTS.LST    a listing of I/O ports
  36.     CATEGORY.KEY    descriptions of divider-line category letters
  37.     COMBINE.COM    combine the pieces of the list into a single file
  38.     COMBINE.DOC    documentation for COMBINE
  39. The following files should be distributed in an archive called INTER53E:
  40.     86BUGSnn.ZIP    programs to test for CPU bugs
  41.     COMBINE.ASM    source code for COMBINE.COM
  42.     INT.*        invoke interrupts from commandline
  43.     INTHLP??.ZIP    Interrupt Helper viewer for the interrupt list
  44.     INTLIST.E    Epsilon extension for handling list
  45.     INTPRINT.C    source code for INTPRINT
  46.     INTSUM??.ZIP    interrupt list browser (Interrupt Summary)
  47.     IVIEW.ZIP    another interrupt list browser
  48. The following should be distributed in an archive called INTER53F:
  49.     INT2RTF.ZIP    Slava Gostrenko's Windows Help converter
  50.     INT2WHLP.ZIP    convert list into Windows Help database
  51.     INTERRUP.ICO    icon for interrupt list
  52.     HINTSRCH.ZIP    WinHelp DLL for full-text searches of interrupt list
  53.     WH_ED*.ZIP    WinHelp-file editor
  54. Finally, the following should be distributed in an archive called INTER53G:
  55.     IL2ME???.ZIP    convert list into Multi-Edit help database
  56.     INT2GUID.*    convert list into TurboPower GUIDE or POPHELP database
  57.     INT2HLP.ZIP    convert list into QuickHelp database
  58.     INT2QH.*    program to convert list into QuickHelp database
  59.     INT2TPH.ZIP    convert to Turbo/Borland Pascal help file (.TPH)
  60.     INTHELP.*    convert list into TurboPower GUIDE database
  61.     RB2NG???.ZIP    convert list into Norton Guides database
  62. --------!---CONTACT_INFO---------------------
  63. If you notice any mistakes or omissions, please let me know!  It is only with
  64. YOUR help that the list can continue to grow at the current rate.  Please send
  65. all changes to me rather than distributing a modified version of the list.
  66.  
  67. Please read the file INTERRUP.1ST before asking me any questions.  You may find
  68. that they have already been addressed.
  69.  
  70.      Ralf Brown
  71.  
  72. Internet: ralf@pobox.com (currently forwards to ralf@telerama.lm.com)
  73. UUCP: {uunet,harvard}!pobox.com!ralf
  74. FIDO: Ralf Brown 1:129/26.1
  75.     or post a message to me in the DR_DEBUG echo (I probably won't see it
  76.     unless you address it to me)
  77. CIS:  >INTERNET:ralf@pobox.com
  78.  
  79. I reply to all e-mail submissions and inquiries, but some of my replies bounce
  80. because of bad return paths.  If you don't get a response from me within a
  81. reasonable period of time, send it again with a better return path (many
  82. mailers are improperly configured and do not produce a valid From: address).
  83. --------!---Note-----------------------------
  84. See INTERRUP.1ST for the key to system abbreviations and a list of the
  85. trademarks mentioned here.
  86. --------!---DISCLAIMER-----------------------
  87. DISCLAIMER:  THIS MATERIAL IS PROVIDED "AS IS".     I verify the information
  88. contained in this list to the best of my ability, but I cannot be held
  89. responsible for any problems caused by use or misuse of the information,
  90. especially for those functions not officially documented.  If it is marked
  91. "internal" or undocumented, you should check it carefully to make sure it
  92. works the same way in your version of the software (and please let me know
  93. whether or not it works the same way).    Information marked with "???" is
  94. known to be incomplete or guesswork.
  95. --------!---FLAGS----------------------------
  96. The use of -> instead of = signifies that the indicated register or register
  97. pair contains a pointer to the specified item, rather than the item itself.
  98. One or more letters may follow the interrupt number; they have the following
  99. meanings:  U - undocumented function, u - partially documented function,
  100. P - available only in protected mode, R - available only in real or V86 mode,
  101. C - callout or callback (usually hooked rather than called),
  102. O - obsolete (no longer present in current versions)
  103. --------!---CATEGORIES-----------------------
  104. The ninth column of the divider line preceding an entry usually contains a
  105. classification code (the entry has not been classified if that character is
  106. a dash).  The codes currently in use are:
  107.     A - applications, a - access software (screen readers, etc),
  108.     B - BIOS, b - vendor-specific BIOS extensions,
  109.     C - CPU-generated, c - caches/spoolers,
  110.     D - DOS kernel, d - disk I/O enhancements,
  111.     E - DOS extenders, e - electronic mail, F - FAX,
  112.     f - file manipulation, G - debuggers/debugging tools, g - games,
  113.     H - hardware, h - vendor-specific hardware,
  114.     I - IBM workstation/terminal emulators, i - system info/monitoring,
  115.     J - Japanese, j - joke programs,
  116.     K - keyboard enhancers, k - file/disk compression,
  117.     l - shells/command interpreters,
  118.     M - mouse/pointing device, m - memory management,
  119.     N - network, n - non-traditional input devices,
  120.     O - other operating systems,
  121.     P - printer enhancements, p - power management,
  122.     Q - DESQview/TopView and Quarterdeck programs,
  123.     R - remote control/file access, r - runtime support,
  124.     S - serial I/O, s - sound/speech,
  125.     T - DOS-based task switchers/multitaskers, t - TSR libraries
  126.     U - resident utilities, u - emulators,
  127.     V - video, v - virus/antivirus,
  128.     W - MS Windows,
  129.     X - expansion bus BIOSes, x - non-volatile config storage
  130.     y - security, * - reserved (and not otherwise classified)
  131. --------C-00---------------------------------
  132. INT 00 C - CPU-generated - DIVIDE ERROR
  133. Desc:    generated if the divisor of a DIV or IDIV instruction is zero or the
  134.       quotient overflows the result register; DX and AX will be unchanged.
  135. Notes:    on an 8086/8088, the return address points to the following instruction
  136.     on an 80286+, the return address points to the divide instruction
  137.     an 8086/8088 will generate this interrupt if the result of a division
  138.       is 80h (byte) or 8000h (word)
  139. SeeAlso: INT 04
  140. --------G-00---------------------------------
  141. INT 00 - Zenith - ROM DEBUGGER
  142. Desc:    invokes the ROM Debugger when at the BIOS level; equivalent to
  143.       pressing Ctrl-Alt-Ins on booting.
  144. Note:    since DOS revectors INT 00, it is necessary to restore this vector to
  145.       its original ROM BIOS value in order to invoke the debugger once DOS
  146.       loads
  147. SeeAlso: INT 03"Columbia"
  148. --------C-01---------------------------------
  149. INT 01 C - CPU-generated - SINGLE STEP
  150. Desc:    generated after each instruction if TF (trap flag) is set; TF is
  151.       cleared on invoking the single-step interrupt handler
  152. Notes:    interrupts are prioritized such that external interrupts are invoked
  153.       after the INT 01 pushes CS:IP/FLAGS and clears TF, but before the
  154.       first instruction of the handler executes
  155.     used by debuggers for single-instruction execution tracing, such as
  156.       MS-DOS DEBUG's T command
  157. SeeAlso: INT 03"CPU"
  158. --------C-01---------------------------------
  159. INT 01 C - CPU-generated (80386+) - DEBUGGING EXCEPTIONS
  160. Desc:    generated by the CPU on various occurrences which may be of interest
  161.       to a debugger program
  162. Note:    events which may trigger the interrupt:
  163.       Instruction address breakpoint fault - will return to execute inst
  164.       Data address breakpoint trap - will return to following instruction
  165.       General detect fault, debug registers in use
  166.       Task-switch breakpoint trap
  167.       undocumented 386/486 opcode F1h - will return to following instruc
  168. SeeAlso: INT 03"CPU"
  169. --------H-02---------------------------------
  170. INT 02 C - external hardware - NON-MASKABLE INTERRUPT
  171. Desc:    generated by the CPU when the input to the NMI pin is asserted
  172. Notes:    return address points to start of interrupted instruction on 80286+
  173.     on the 80286+, further NMIs are disabled until the next IRET
  174.       instruction, but one additional NMI is remembered by the hardware
  175.       and will be serviced after the IRET instruction reenables NMIs
  176.     maskable interrupts may interrupt the NMI handler if interrupts are
  177.       enabled
  178.     although the Intel documentation states that this interrupt is
  179.       typically used for power-failure procedures, it has many other uses
  180.       on IBM-compatible machines:
  181.         Memory parity error: all except Jr, CONV, and some machines
  182.                   without memory parity
  183.         Breakout switch on hardware debuggers
  184.         Coprocessor interrupt: all except Jr and CONV
  185.         Keyboard interrupt: Jr, CONV
  186.         I/O channel check: CONV, PS50+
  187.         Disk-controller power-on request: CONV
  188.         System suspend: CONV
  189.         Real-time clock: CONV
  190.         System watch-dog timer, time-out interrupt: PS50+
  191.         DMA timer time-out interrupt: PS50+
  192.         Low battery: HP 95LX
  193.         Module pulled: HP 95LX
  194. --------m-02----SI0714-----------------------
  195. INT 02 U - STB RAPIDMAP.SYS - ???
  196.     SI = 0714h
  197.     ES:DI -> ???
  198. Return: ???
  199. SeeAlso: INT 67/AX=6100h"STB",PORT 00E1h"STB"
  200. --------C-03---------------------------------
  201. INT 03 C - CPU-generated - BREAKPOINT
  202. Desc:    generated by the one-byte breakpoint instruction (opcode CCh)
  203. Notes:    used by debuggers to implement breakpoints, such as MS-DOS DEBUG's G
  204.       command
  205.     also used by Turbo Pascal versions 1,2,3 when {$U+} specified
  206.     return address points to byte following the breakpoint instruction
  207.     called by Novell DOS 7 EMM386 after displaying an exception error
  208.       message (GPF, illegal opcodes, etc.) and before waiting for user
  209.       input
  210.     called by QEMM-386 if the user presses 'I' (undocumented) when prompted
  211.       after an exception error message
  212. SeeAlso: INT 01"CPU"
  213. --------G-03---------------------------------
  214. INT 03 - Columbia PCs (desktop,VP portables) - ROM DEBUGGER
  215. Desc:    invokes the ROM Debugger if INT 03 has not been revectored; equivalent
  216.       to pressing Esc on booting.
  217. SeeAlso: INT 00"Zenith",INT 03"Realia"
  218. --------G-03---------------------------------
  219. INT 03 - Realia COBOL - DEBUGGER SUPPORT
  220. Note:    Realia COBOL checks for a signature eight bytes prior to the interrupt
  221.       handler when it starts up
  222. BUG:    if the offset of the INT 03 vector is less than 8, the compiler and
  223.       all executables generated by it will crash the system
  224. SeeAlso: INT 03"Columbia"
  225. --------G-03---------------------------------
  226. INT 03 U - Watcom WVIDEO, Watcom WD - OUTPUT DEBUGGING MESSAGE
  227.     STACK:    DWORD    selector
  228.         DWORD    offset of ASCIZ message to display
  229. Notes:    the INT 03h instruction which invokes the debugger must be followed by
  230.       a JMP SHORT and the signature string "WVIDEO"
  231.     to check whether this interface is available, define a public byte
  232.       variable named ___WD_Present, which the debugger will set to 01h
  233.       before running the program
  234. SeeAlso: AX=0910h
  235. --------U-03---------------------------------
  236. INT 03 - DTown Utilities - POP UP
  237. Program: DTown Software Development's DTown Utilities contains various tools
  238.       which are useful to programmers, such as a memory viewer and
  239.       disassembler
  240. Note:    DTU pops up on INT 03 (if not hooked by a debugger) to allow the
  241.       user to inspect memory or code when the machine crashes; various
  242.       memory managers will invoke INT 03 when displaying a CPU exception
  243.       error message (either automatically or when the user presses a
  244.       particular key)
  245. SeeAlso: INT 2D/AL=20h"DTown"
  246. --------G-030910-----------------------------
  247. INT 03 - Soft-ICE - BACK DOOR COMMANDS - DISPLAY STRING IN Soft-ICE WINDOW
  248.     AX = 0910h
  249.     SI = magic value 4647h ('FG')
  250.     DI = magic value 4A4Dh ('JM')
  251.     DS:DX -> ASCIZ string to display (max 100 bytes, 0Dh OK)
  252. Program: Soft-ICE is a debugger by Nu-Mega Technologies, Inc.
  253. SeeAlso: INT 03"WVIDEO"
  254. --------G-030911-----------------------------
  255. INT 03 - Soft-ICE - BACK DOOR COMMANDS - EXECUTE Soft-ICE COMMAND
  256.     AX = 0911h
  257.     SI = magic value 4647h ('FG')
  258.     DI = magic value 4A4Dh ('JM')
  259.     DS:DX -> ASCIZ command string (max 100 bytes, 0Dh OK)
  260. Return: nothing
  261. SeeAlso: AX=0912h,AX=0913h
  262. --------G-030912-----------------------------
  263. INT 03 - Soft-ICE - BACK DOOR COMMANDS - GET BREAKPOINT INFORMATION
  264.     AX = 0912h
  265.     SI = magic value 4647h ('FG')
  266.     DI = magic value 4A4Dh ('JM')
  267. Return: BH = entry number of last breakpoint set
  268.     BL = type of last breakpoint set (see #0001)
  269.     DH = entry number of last breakpoint to be triggered
  270.     DL = type of last triggered breakpoint (see #0001)
  271. Program: Soft-ICE is a debugger by Nu-Mega Technologies, Inc.
  272. SeeAlso: AX=0911h,AX=0913h,AX=0914h
  273.  
  274. (Table 0001)
  275. Values for Soft-ICE breakpoint type:
  276.  00h    BPM (breakpoint register types)
  277.  01h    I/O
  278.  02h    INTerrupt
  279.  03h    BPX (INT 03-style breakpoint)
  280.  04h    reserved
  281.  05h    range
  282. --------G-030913-----------------------------
  283. INT 03 - Soft-ICE v2.5x - BACK DOOR COMMANDS - SET Soft-ICE BREAKPOINT
  284.     AX = 0913h
  285.     SI = magic value 4647h ('FG')
  286.     DI = magic value 4A4Dh ('JM')
  287.     DS:DX -> breakpoint structure (see #0002)
  288. Return: AX = status
  289.         00h successful
  290.         BX = breakpoint number
  291.         03h breakpoint table full
  292.         06h memory limit error
  293.         07h I/O limit error
  294.         09h range limit error
  295.         16h duplicate breakpoint
  296. SeeAlso: AX=0911h,AX=0912h,AX=0914h
  297.  
  298. Format of Soft-ICE breakpoint structure:
  299. Offset    Size    Description    (Table 0002)
  300.  00h    BYTE    breakpoint type (see #0003)
  301.  01h    DWORD    breakpoint address 1
  302.         (lower range limit for memory BPs,
  303.         interrupt number for interrupt BPs,
  304.         address of BP for execution BPs,
  305.         I/O address (only word)    for I/O BPs)
  306.  05h    DWORD    breakpoint address 2
  307.         (upper range limit for memory BPs,
  308.         optional value to check for for interrupt BPs,
  309.         overlay number (0 = root) for execution BPs)
  310.  09h    DWORD    breakpoint address 3
  311.  0Dh    BYTE    breakpoint mode 1 (see #0004)
  312.         (for interrupt BPs = register to check
  313.             00h     no value checking
  314.             01h     check AL
  315.             02h     check AH
  316.             03h     check AX)
  317.  0Eh    BYTE    breakpoint mode 2 (see #0004)
  318.  0Fh    BYTE    breakpoint size (00h byte, 01h word, 03h dword)
  319.  10h    BYTE    breakpoint pass count before program stop
  320.  11h    BYTE    breakpoint state
  321. Note:    all unused fields should contain zeros
  322.  
  323. (Table 0003)
  324. Values for Soft-ICE breakpoint type:
  325.  00h    memory location
  326.  01h    memory range
  327.  03h    I/O
  328.  04h    interrupt
  329.  05h    execution break
  330.  
  331. (Table 0004)
  332. Values for Soft-ICE breakpoint mode:
  333.  01h    read
  334.  02h    write
  335.  04h    execution
  336. --------G-030914-----------------------------
  337. INT 03 - Soft-ICE v2.5x - BACK DOOR COMMANDS - REMOVE Soft-ICE BREAKPOINT
  338.     AX = 0914h
  339.     SI = magic value 4647h ('FG')
  340.     DI = magic value 4A4Dh ('JM')
  341.     BX = breakpoint number (returned by AX=0913h)
  342. Return: BX = ???
  343. Program: Soft-ICE is a debugger by Nu-Mega Technologies, Inc.
  344. SeeAlso: AX=0912h,AX=0913h
  345. --------C-04---------------------------------
  346. INT 04 C - CPU-generated - INTO DETECTED OVERFLOW
  347. Desc:    the INTO instruction will generate this interrupt if OF (Overflow Flag)
  348.       is set; otherwise, INTO is effectively a NOP
  349. Note:    may be used for convenient overflow testing (to prevent errors from
  350.       propagating) instead of JO or a JNO/JMP combination
  351. SeeAlso: INT 00"CPU"
  352. --------B-05---------------------------------
  353. INT 05 - PRINT SCREEN
  354. Desc:    dump the current text screen to the first printer
  355. Notes:    normally invoked by the INT 09 handler when PrtSc key is pressed, but
  356.       may be invoked directly by applications
  357.     byte at 0050h:0000h contains status used by default handler
  358.       00h not active
  359.       01h PrtSc in progress
  360.       FFh last PrtSc encountered error
  361.     default handler is at F000h:FF54h in IBM PC and 100%-compatible BIOSes
  362.     since the BOUND instruction also calls INT 05h, but returns control
  363.       to the BOUND instruction, a failed BOUND check will cause an infinite
  364.       loop of PrtScreens unless the INT 05 handler is aware of the problem
  365.       and checks whether the interrupt was invoked by a BOUND instruction
  366. BUG:    some old BIOSes/applications appear to destroy BP on return
  367. SeeAlso: INT 10/AH=12h/BL=20h,INT 4A"Tandy 2000",INT 5E"TI Professional"
  368. SeeAlso: INT 80"Phar Lap"
  369. --------C-05---------------------------------
  370. INT 05 C - CPU-generated (80186+) - BOUND RANGE EXCEEDED
  371. Desc:    generated by BOUND instruction when the value to be tested is less than
  372.       the indicated lower bound or greater than the indicated upper bound.
  373. Note:    returning from this interrupt re-executes the failing BOUND instruction
  374. --------P-05454A-----------------------------
  375. INT 05 U - PSPS v2.01 - EJECT PAGE
  376.     AX = 454Ah ('EJ')
  377. Program: PSPS is shareware PostScript PrintScreen utility by A.N.D.
  378.       Technologies
  379. Note:    sends a ^D to the current printer
  380. SeeAlso: AX=4E57h,AX=5053h,AX=554Eh
  381. --------P-054E57-----------------------------
  382. INT 05 U - PSPS v2.01 - SET PARAMETERS
  383.     AX = 4E57h ('NW')
  384.     ES:SI -> 11-byte buffer containing new settings
  385. Return: buffer filled
  386. SeeAlso: AX=454Ah,AX=5053h,INT 17/AH=63h
  387. --------P-055053-----------------------------
  388. INT 05 U - PSPS v2.01 - GET PARAMETERS
  389.     AX = 5053h ('PS')
  390.     ES:SI -> 11-byte buffer for settings
  391. Return: buffer filled
  392. SeeAlso: AX=4E57h,AX=554Eh,INT 17/AH=64h
  393. --------P-05554E-----------------------------
  394. INT 05 U - PSPS v2.01 - UNINSTALL
  395.     AX = 554Eh ('UN')
  396. Program: PSPS is shareware PostScript PrintScreen utility by A.N.D.
  397.       Technologies
  398. SeeAlso: AX=454Ah,AX=4E57h,INT 17/AH=62h
  399. --------C-06---------------------------------
  400. INT 06 C - CPU-generated (80286+) - INVALID OPCODE
  401. Desc:    this interrupt is generated when the CPU attempts to execute an
  402.       invalid opcode (most protected-mode instructions are considered
  403.       invalid in real mode) or a BOUND, LDS, LES, or LIDT instruction
  404.       which specifies a register rather than a memory address
  405. Notes:    return address points to beginning of invalid instruction
  406.     with proper programming, this interrupt may be used to emulate
  407.       instructions which do not exist; many 386 BIOSes emulate the 80286
  408.       undocumented LOADALL instruction which was removed from the 80386+
  409.     generated by the 80386+ when the LOCK prefix is used with instructions
  410.       other than BTS, BTR, BTC, XCHG, XADD (486), CMPXCHG (486), INC, DEC,
  411.       NOT, NEG, ADD, ADC, SUB, SBB, AND, OR, or XOR, or any instruction
  412.       not accessing memory.
  413. SeeAlso: INT 0C"CPU",INT 0D"CPU"
  414. --------b-06---------------------------------
  415. INT 06 C - HP 95LX - SLEEP/WAKEUP
  416. Desc:    this interrupt is called just before going into light or deep
  417.       (shutdown) sleep and just after returning from light or deep sleep
  418. SeeAlso: INT 0B"HP 95LX",INT 15/AX=4DD4h,INT 15/AH=4Eh
  419. --------V-06---------------------------------
  420. INT 06 U - no-name clone - GRAPHICS CHARACTER TABLE (NOT A VECTOR!)
  421. Desc:    points at graphics data for characters 00h-7Fh of the current font
  422. SeeAlso: INT 43"EGA",INT 44"VIDEO"
  423. --------C-07---------------------------------
  424. INT 07 C - CPU-generated (80286+) - PROCESSOR EXTENSION NOT AVAILABLE
  425. Desc:    this interrupt is automatically called if a coprocessor instruction is
  426.       encountered when no coprocessor is installed
  427. Note:    can be used to emulate a numeric coprocessor in software
  428. SeeAlso: INT 09"CPU"
  429. --------H-08---------------------------------
  430. INT 08 C - IRQ0 - SYSTEM TIMER
  431. Desc:    generated 18.2 times per second by channel 0 of the 8254 system timer,
  432.       this interrupt is used to keep the time-of-day clock updated
  433. Notes:    programs which need to be invoked regularly should use INT 1C unless
  434.       they need to reprogram the timer while still keeping the time-of-day
  435.       clock running at the proper rate
  436.     default handler is at F000h:FEA5h in IBM PC and 100%-compatible BIOSes
  437.     may be masked by setting bit 0 on I/O port 21h
  438. SeeAlso: INT 1C,INT 4A"SYSTEM",INT 50"DESQview",INT 58"DoubleDOS",INT 70"IRQ8"
  439. SeeAlso: INT 78"GO32",INT D8"Screen Thief"
  440. --------C-08---------------------------------
  441. INT 08 C - CPU-generated (80286+) - DOUBLE EXCEPTION DETECTED
  442. Desc:    called when multiple exceptions occur on one instruction, or an
  443.       exception occurs in an exception handler
  444. Notes:    called in protected mode if an interrupt above the defined limit of
  445.       the interrupt vector table occurs
  446.     return address points at beginning of instruction with errors or the
  447.       beginning of the instruction which was about to execute when the
  448.       external interrupt caused the exception
  449.     if an exception occurs in the double fault handler, the CPU goes into
  450.       SHUTDOWN mode (which circuitry in the PC/AT converts to a reset);
  451.       this "triple fault" is a faster way of returning to real mode on
  452.       many 80286 machines than the standard keyboard controller reset
  453. --------H-09---------------------------------
  454. INT 09 C - IRQ1 - KEYBOARD DATA READY
  455. Desc:    this interrupt is generated when data is received from the keyboard.
  456.       This is normally a scan code (from either a keypress *or* a key
  457.       release), but may also be an ACK or NAK of a command on AT-class
  458.       keyboards.
  459. Notes:    this IRQ may be masked by setting bit 1 on I/O port 21h
  460.     if the BIOS supports an enhanced (101/102-key) keyboard, it calls
  461.       INT 15/AH=4Fh after reading the scan code (see #0005) from the
  462.       keyboard and before further processing; all further processing uses
  463.       the scan code returned from INT 15/AH=4Fh
  464.     the default interrupt handler is at F000h:E987h in 100%-compatible
  465.       BIOSes
  466.     the interrupt handler performs the following actions for certain
  467.       special keystrokes:
  468.         Ctrl-Break     clear keyboard buffer, place word 0000h in buffer,
  469.              invoke INT 1B, and set flag at 0040h:0071h
  470.         SysReq     invoke INT 15/AH=85h (SysReq is often labeled SysRq)
  471.         Ctrl-Numlock place system in a tight wait loop until next INT 09
  472.         Ctrl-Alt-Del jump to BIOS startup code (either F000h:FFF0h or the
  473.                destination of the jump at that address)
  474.         Shift-PrtSc     invoke INT 05
  475.         Ctrl-Alt-Plus (HP Vectra) enable keyclick
  476.         Ctrl-Alt-Plus (many clones) set clock speed to high
  477.         Ctrl-Alt-Minus (HP Vectra) reduce keyclick volume
  478.         Ctrl-Alt-Minus (many clones) set clock speed to low
  479.         Ctrl-Alt-SysReq (HP Vectra) generate hard reset
  480.         Ctrl-Alt-S    (many clones) run BIOS setup program
  481.         Ctrl-Alt-Esc (many clones) run BIOS setup program
  482.         Ctrl-Alt-Ins (many clones) run BIOS setup program
  483.         Ctrl-Alt-LeftShift-GrayMinus (some clones) turn off system cache
  484.         Ctrl-Alt-LeftShift-GrayPlus (some clones) turn on system cache
  485.     DR DOS hooks this interrupt to control the cursor shape (underscore/
  486.       half block) for overwrite/insert mode
  487.     DR Multiuser DOS hooks this interrupt for cursor shape control and to
  488.       control whether Ctrl-Alt-Del reboots the current session or the
  489.       entire system
  490. SeeAlso: INT 05"PRINT SCREEN",INT 0B"HP 95LX",INT 15/AH=4Fh,INT 15/AH=85h
  491. SeeAlso: INT 16/AH=00h,INT 16/AH=10h,INT 1B,INT 2F/AX=A901h,INT 4A/AH=00h"TI"
  492. SeeAlso: INT 51"DESQview",INT 59"DoubleDOS",INT 79"GO32"
  493.  
  494. (Table 0005)
  495. Values for keyboard make/break (scan) code:
  496.  01h    Esc         31h    N
  497.  02h    1 !         32h    M
  498.  03h    2 @         33h    , <         63h    F16
  499.  04h    3 #         34h    . >         64h    F17
  500.  05h    4 $         35h    / ?         65h    F18
  501.  06h    5 %         36h    Right Shift     66h    F19
  502.  07h    6 ^         37h    Grey*         67h    F20
  503.  08h    7 &         38h    Alt         68h    F21 (Fn) [*]
  504.  09h    8 *         39h    SpaceBar     69h    F22
  505.  0Ah    9 (         3Ah    CapsLock     6Ah    F23
  506.  0Bh    0 )         3Bh    F1         6Bh    F24
  507.  0Ch    - _         3Ch    F2         6Ch    --
  508.  0Dh    = +         3Dh    F3         6Dh    EraseEOF
  509.  0Eh    Backspace     3Eh    F4
  510.  0Fh    Tab         3Fh    F5         6Fh    Copy/Play
  511.  10h    Q         40h    F6
  512.  11h    W         41h    F7
  513.  12h    E         42h    F8         72h    CrSel
  514.  13h    R         43h    F9         73h    <delta> [*]
  515.  14h    T         44h    F10         74h    ExSel
  516.  15h    Y         45h    NumLock         75h    --
  517.  16h    U         46h    ScrollLock     76h    Clear
  518.  17h    I         47h    Home
  519.  18h    O         48h    UpArrow
  520.  19h    P         49h    PgUp
  521.  1Ah    [ {         4Ah    Grey-
  522.  1Bh    ] }         4Bh    LeftArrow
  523.  1Ch    Enter         4Ch    Keypad 5
  524.  1Dh    Ctrl         4Dh    RightArrow
  525.  1Eh    A         4Eh    Grey+
  526.  1Fh    S         4Fh    End
  527.  20h    D         50h    DownArrow
  528.  21h    F         51h    PgDn
  529.  22h    G         52h    Ins
  530.  23h    H         53h    Del
  531.  24h    J         54h    SysReq        ---non-key codes---
  532.  25h    K                     00h    kbd buffer full
  533.  26h    L         56h    left \| (102-key)
  534.  27h    ; :         57h    F11         AAh    self-test complete
  535.  28h    ' "         58h    F12         E0h    prefix code
  536.  29h    ` ~                     E1h    prefix code
  537.  2Ah    Left Shift     5Ah    PA1         EEh    ECHO
  538.  2Bh    \ |         5Bh    F13 (LWin)     F0h    prefix code (key break)
  539.  2Ch    Z         5Ch    F14 (RWin)     FAh    ACK
  540.  2Dh    X         5Dh    F15 (Menu)     FCh    diag failure (MF-kbd)
  541.  2Eh    C                     FDh    diag failure (AT-kbd)
  542.  2Fh    V                     FEh    RESEND
  543.  30h    B                     FFh    kbd error/buffer full
  544. Notes:    scan codes 56h-E1h are only available on the extended (101/102-key)
  545.       keyboard and Host Connected (122-key) keyboard; scan codes 5Bh-5Dh
  546.       are only available on the 122-key keyboard and the Microsoft Natural
  547.       Keyboard; scan codes 5Eh-76h are only available on the 122-key
  548.       keyboard
  549.     in the default configuration, break codes are the make scan codes with
  550.       the high bit set; make codes 60h,61h,70h, etc. are not available
  551.       because the corresponding break codes conflict with prefix codes
  552.       (code 2Ah is available because the self-test result code AAh is only
  553.       sent on keyboard initialization).  An alternate keyboard
  554.       configuration can be enabled on AT and later systems with enhanced
  555.       keyboards, in which break codes are the same as make codes, but
  556.       prefixed with an F0h scan code
  557.     prefix code E0h indicates that the following make/break code is for a
  558.       "gray" duplicate to a key which existed on the original PC keyboard;
  559.       prefix code E1h indicates that the following make code has no
  560.       corresponding break code (currently only the Pause key generates no
  561.       break code)
  562.     the Microsoft Natural Keyboard sends make codes 5Bh, 5Ch, and 5Dh
  563.       (all with an E0h prefix) for the Left Windows, Right Windows, and
  564.       Menu keys on the bottom row
  565.     the German "Cherry G81-3000 SAD/04" keyboard contains contacts for
  566.       four additional keys, which can be made available by a user
  567.       modification; the three new keys located directly below the cursor
  568.       pad's Delete, End, and PgDn keys send make codes 66h-68h (F19-F21);
  569.       the fourth new key, named <delta>, sends make code 73h
  570.     the SysReq key is often labeled SysRq
  571.     the "Accord" ergonomic keyboard with optional touchpad (no other
  572.       identification visible on keyboard or in owner's booklet) has an
  573.       additional key above the Grey- key marked with a left-pointing
  574.       triangle and labeled "Fn" in the owner's booklet which returns
  575.       scan codes E0h 68h on make and E0h E8h on break
  576. SeeAlso: #0499 at INT 16/AX=6F07h,#2469 at INT 4A/AH=05h
  577. --------C-09---------------------------------
  578. INT 09 C - CPU-generated (80286,80386) - PROCESSOR EXTENSION PROTECTION ERROR
  579. Desc:    called if the coprocessor attempts to access memory outside a segment
  580.       boundary; it may occur at an arbitrary time after the coprocessor
  581.       instruction was issued
  582. Notes:    until the condition is cleared or the coprocessor is reset, the only
  583.       coprocessor instruction which may be used is FNINIT; WAIT or other
  584.       coprocessor instructions will cause a deadlock because the
  585.       coprocessor is still busy waiting for data
  586.     for the 486+, a coprocessor protection error generates an INT 0D
  587. SeeAlso: INT 07"CPU"
  588. --------*-09---------------------------------
  589. INT 09 P - internal hardware - RESERVED BY Intel (80486)
  590. Note:    this exception has been moved to INT 0D
  591. SeeAlso: INT 09"CPU",INT 0D
  592. --------H-0A---------------------------------
  593. INT 0A C - IRQ2 - LPT2 (PC), VERTICAL RETRACE INTERRUPT (EGA,VGA)
  594. Notes:    the TOPS and PCnet adapters use this interrupt request line by default
  595.     DOS 3.2 revectors IRQ2 to a stack-switching routine
  596.     on ATs and above, the physical data line for IRQ2 is labeled IRQ9 and
  597.       connects to the slave 8259.  The BIOS redirects the interrupt for
  598.       IRQ9 back here.
  599.     under DESQview, only the INT 15h vector and BASIC segment address (the
  600.       word at 0000h:0510h) may be assumed to be valid for the handler's
  601.       process
  602.     many VGA boards do not implement the vertical retrace interrupt,
  603.       including the IBM VGA Adapter where the traces are either cut or
  604.       removed
  605. SeeAlso: INT 52"DESQview",INT 5A"DoubleDOS",INT 71,INT 7A"GO32"
  606. --------H-0A---------------------------------
  607. INT 0A C - IRQ2 - Tandy 1000-series HARD DISK
  608. Notes:    this interrupt may be masked by setting bit 2 on I/O port 21h
  609.     the Tandy 1000, 1000A, and 1000HD use IRQ2 for the hard disk; the
  610.       1000EX, HX, RLX, RLX-HD, RLX-B, RLX-HD-B use IRQ5 instead; the
  611.       1000RL, RL-HD, SL, SL/2, TL, TL/2, and TL/3 are jumper-selectable
  612.       for either IRQ2 or IRQ5 (default IRQ5); the 1000SX and TX are
  613.       DIP-switch selectable for IRQ2 or IRQ5 (default IRQ2); the RSX and
  614.       RSX-HD use IRQ14.  Tandy systems which use IRQ2 for the hard disk
  615.       interrupt use IRQ5 for vertical retrace.
  616. SeeAlso: INT 52"DESQview",INT 5A"DoubleDOS",INT 71
  617. --------H-0A---------------------------------
  618. INT 0A - IRQ2 - ROLAND MPU MIDI INTERFACE
  619. Note:    newer Roland cards and MIDI interfaces by other manufacturers use
  620.       a jumper-selectable IRQ, but software and hardware generally defaults
  621.       to IRQ2
  622. SeeAlso: INT 52"DESQview",INT 5A"DoubleDOS",INT 71,INT 7A"GO32"
  623. --------C-0A---------------------------------
  624. INT 0A CP - CPU-generated (80286+) - INVALID TASK STATE SEGMENT
  625. Desc:    automatically called during a task switch if the new TSS specified by
  626.       the task gate is invalid for any of the following reasons:
  627.         TSS limit is less than 43 (80286) or 103 (80386/80486)
  628.         LDT selector invalid or segment not present
  629.         null SS selector, or SS selector outside LDT/GDT limit
  630.         stack segment is read-only
  631.         stack segment DPL differs from new CPL, or RPL <> CPL
  632.         CS selector is outside LDT/GDT limit or not code
  633.         non-conforming code segment's DPL differs from CPL
  634.         conforming code segment's DPL > CPL
  635.         DS/ES selectors outside LDT/GDT limit or not readable segments
  636. Note:    the handler must use a task gate in order to have a valid TSS under
  637.       which to execute; it must also reset the busy bit in the new TSS
  638. SeeAlso: INT 0B"CPU"
  639. --------H-0B---------------------------------
  640. INT 0B C - IRQ3 - SERIAL COMMUNICATIONS (COM2)
  641. Desc:    automatically asserted by the UART when COM2 needs attention, if the
  642.       UART has been programmed to generate interrupts
  643. Notes:    the TOPS and PCnet adapters use this interrupt request line as an
  644.       alternate
  645.     on PS/2s, COM2 through COM8 share this interrupt; on many PC's, COM4
  646.       shares this interrupt
  647.     may be masked by setting bit 3 on I/O port 21h
  648. SeeAlso: INT 0C"COM1",INT 53"DESQview",INT 5B"DoubleDOS",INT 7B"GO32"
  649. --------C-0B---------------------------------
  650. INT 0B CP - CPU-generated (80286+) - SEGMENT NOT PRESENT
  651. Desc:    generated when loading a segment register if the segment descriptor
  652.       indicates that the segment is not currently in memory, unless the
  653.       segment is an LDT (see INT 0A"CPU") or stack segment (see
  654.       INT 0C"CPU") needed by a task switch
  655. Note:    may be used to implement virtual memory by loading in segments as they
  656.       are accessed, clearing the "not present" bit after loading
  657. SeeAlso: INT 0A"CPU",INT 0E"CPU"
  658. --------h-0B---------------------------------
  659. INT 0B - HP 95LX - LOW-LEVEL KEYBOARD HANDLER
  660. Desc:    this is the lowest-level keyboard handler on an HP 95LX palmtop
  661. Note:    debounces key, places the keycode in I/O register 60h, and calls INT 09
  662. SeeAlso: INT 09,INT 0D"HP 95LX",INT 15/AX=4DD4h
  663. --------H-0C---------------------------------
  664. INT 0C C - IRQ4 - SERIAL COMMUNICATIONS (COM1)
  665. Desc:    automatically asserted by the UART when COM1 needs attention, if the
  666.       UART has been programmed to generate interrupts
  667. BUG:    this vector is modified but not restored by Direct Access v4.0, and
  668.       may be left dangling by other programs written with the same version
  669.       of compiled BASIC
  670. Notes:    on many PC's, COM3 shares this interrupt
  671.     may be masked by setting bit 4 on I/O port 21h
  672. SeeAlso: INT 0B"COM2",INT 54"DESQview",INT 5C"DoubleDOS",INT 7C"GO32"
  673. --------C-0C---------------------------------
  674. INT 0C C - CPU-generated (80286+) - STACK FAULT
  675. Desc:    this interrupt is generated in protected mode on a stack overflow or
  676.       underflow, or if an inter-level transition or task switch references
  677.       a stack segment marked "not present"; it is generated in real mode
  678.       on accessing a word operand at SS:FFFFh
  679. Note:    the 80286 will shut down in real mode if SP=1 before a push.  On the
  680.       PC AT and compatibles, external circuitry generates a reset on
  681.       shutdown.
  682. SeeAlso: INT 0B"CPU",INT 0D"CPU"
  683. --------I-0C---------------------------------
  684. INT 0C - IBM SYSTEM 36/38 WORKSTATION EMULATION - API POINTER
  685. Desc:    the IBM System 36/38 emulator may be invoked through a private API,
  686.       whose entry point address (see #0006) is offset 100h in the segment
  687.       pointed at by this vector
  688.  
  689. (Table 0006)
  690. Call the System 36/38 emulator API entry point with:
  691.     AH = function
  692.         03h update screen
  693.         05h select next session
  694.         AL = session number (00h-03h)
  695.         Return: AL = session type code
  696.                 00h not active
  697.                 01h display session
  698.                 02h printer session
  699.                 FEh invalid session number
  700.             DS = requested session's data segment (0 if not active)
  701.                 (see #0007)
  702. Return: ???
  703.  
  704. Format of System 36/38 emulator's data area:
  705. Offset    Size    Description    (Table 0007)
  706. 13Eh    BYTE    bit flags for status line indicators turned on since this byte
  707.         last zerod
  708. 13Fh    BYTE    bit flags for status line indicators turned off since this
  709.         byte last set to FFh
  710. 140h    WORD    offset of EBCDIC to ASCII translation
  711. 146h    WORD    offset of EBCDIC screen buffer
  712. 148h    WORD    offset of EC (engineering change) level signature
  713. 150h    BYTE    "KEYI"
  714. 151h    BYTE    5250 key scan code to be sent to remote
  715. 15Bh    BYTE    "SYSAV"
  716. 15Dh    BYTE    5250 cursor column
  717. 15Eh    BYTE    5250 cursor row
  718. 167h    BYTE    "DVCTAD"
  719. 178h    BYTE    "FLAGS"
  720. 184h    BYTE    "SESSNOAD"
  721. 193h    BYTE    "STNAD"
  722. 198h    BYTE    "NSDS"
  723. Note:    offsets are from the interrupt handler's segment
  724. --------H-0D---------------------------------
  725. INT 0D C - IRQ5 - FIXED DISK (PC,XT), LPT2 (AT), reserved (PS/2)
  726. Notes:    under DESQview, only the INT 15h vector and BASIC segment address (the
  727.       word at 0000h:0510h) may be assumed to be valid for the handler's
  728.       process
  729.     the Tandy 1000, 1000A, and 1000HD use IRQ2 for the hard disk; the
  730.       1000EX, HX, RLX, RLX-HD, RLX-B, RLX-HD-B use IRQ5 instead; the
  731.       1000RL, RL-HD, SL, SL/2, TL, TL/2, and TL/3 are jumper-selectable
  732.       for either IRQ2 or IRQ5 (default IRQ5); the 1000SX and TX are
  733.       DIP-switch selectable for IRQ2 or IRQ5 (default IRQ2); the RSX and
  734.       RSX-HD use IRQ14.  Tandy systems which use IRQ2 for the hard disk
  735.       interrupt use IRQ5 for vertical retrace.
  736.     may be masked by setting bit 5 on I/O port 21h
  737. SeeAlso: INT 0E"IRQ6",INT 0F"IRQ7",INT 55"DESQview",INT 5D"DoubleDOS"
  738. SeeAlso: INT 7D"GO32"
  739. --------H-0D---------------------------------
  740. INT 0D C - IRQ5 - Tandy 1000 60 Hz RAM REFRESH
  741. Desc:    used to ensure that the dynamic RAM retains its contents in earlier
  742.       1000-series models; later models use normal DMA for RAM refresh
  743.       (some early models have no DMA unless it is added via an expansion
  744.       card)
  745. SeeAlso: INT 55
  746. --------h-0D---------------------------------
  747. INT 0D - HP 95LX - INFRARED INTERRUPT
  748. Desc:    this interrupt is used to perform communications over the infrared
  749.       data link
  750. SeeAlso: INT 0B"HP 95LX",INT 0E"HP 95LX",INT 15/AX=4DD4h
  751. --------C-0D---------------------------------
  752. INT 0D C - CPU-generated (80286+) - GENERAL PROTECTION VIOLATION
  753. Desc:    the CPU generates this interrupt when it detects a protection violation
  754.       which does not fit under any other category having a separate
  755.       interrupt
  756. Notes:    called in real mode when
  757.         an instruction accesses a memory operand extending beyond offset
  758.           FFFFh (i.e. WORD at FFFFh or DWORD at FFFDh or higher) in segment
  759.           CS, DS, ES, FG, or GS
  760.         a PUSH MEM or POP MEM instruction contains an invalid bit encoding
  761.           in the second byte
  762.         an instruction exceeds the maximum length allowed (10 bytes for
  763.           80286, 15 bytes for 80386/80486)
  764.         an instruction wraps from offset FFFFh to offset 0000h
  765.     called in protected mode on protection violations not covered by INT 06
  766.       through INT 0C, including
  767.         segment limit violations
  768.         write to read-only segments
  769.         accesses using null DS or ES selectors
  770.         accesses to segments with privilege greater than CPL
  771.         wrong descriptor type
  772.     called on 80486 protected-mode floating-point protection fault
  773. SeeAlso: INT 09"80486",INT 0C"STACK"
  774. --------H-0E---------------------------------
  775. INT 0E C - IRQ6 - DISKETTE CONTROLLER
  776. Desc:    this interrupt is generated by the floppy disk controller on
  777.       completion of an operation
  778. Notes:    default handler is at F000h:EF57h in IBM PC and 100%-compatible BIOSes
  779.     may be masked by setting bit 6 on I/O port 21h
  780. SeeAlso: INT 0D"IRQ5",INT 56"DESQview",INT 5E"DoubleDOS",INT 7E"GO32"
  781. --------C-0E---------------------------------
  782. INT 0E C - CPU-generated (80386+ native mode) - PAGE FAULT
  783. Desc:    this interrupt is generated in protected and virtual-86 modes on
  784.       attempting to access a 4K memory page whose page table entry has
  785.       the "present" bit cleared
  786. Notes:    used to implement virtual memory--when the page fault occurs, the
  787.       operating system can load the appropriate page from disk
  788.     a protected-mode program written in the Flat memory model will often
  789.       generate this interrupt (typically reported as an Exception #14 or
  790.       Exception 0E with a register dump) when dereferencing an
  791.       uninitialized or corrupted pointer
  792. SeeAlso: INT 0B"CPU"
  793. --------h-0E---------------------------------
  794. INT 0E C - HP 95LX - EXTERNAL CARD INTERRUPT
  795. SeeAlso: INT 0D"HP 95LX",INT 0F"HP 95LX",INT 15/AX=4DD4h
  796. --------H-0F---------------------------------
  797. INT 0F C - IRQ7 - PARALLEL PRINTER
  798. Desc:    this interrupt is generated by the LPT1 printer adapter when the
  799.       printer becomes ready
  800. Notes:    most printer adapters do not reliably generate this interrupt
  801.     the 8259 interrupt controller generates an interrupt corresponding to
  802.       IRQ7 when an error condition occurs
  803. SeeAlso: INT 0D"IRQ5",INT 57"DESQview",INT 5F"DoubleDOS",INT 7F"GO32"
  804. --------h-0F---------------------------------
  805. INT 0F C - HP 95LX - REAL-TIME CLOCK
  806. SeeAlso: INT 0E"HP 95LX",INT 15/AX=4DD4h,INT 70"IRQ8"
  807. --------C-10---------------------------------
  808. INT 10 C - CPU-generated (80286+) - COPROCESSOR ERROR
  809. Desc:    this interrupt is generated by the CPU when the -ERROR pin is asserted
  810.       by the coprocessor
  811. Note:    AT's and clones usually wire the coprocessor to use IRQ13, but not all
  812.       get it right
  813. SeeAlso: INT 09"hardware",INT 75
  814. --------V-1000-------------------------------
  815. INT 10 - VIDEO - SET VIDEO MODE
  816.     AH = 00h
  817.     AL = desired video mode (see #0009)
  818. Return: AL = video mode flag (Phoenix, AMI BIOS)
  819.         20h mode > 7
  820.         30h modes 0-5 and 7
  821.         3Fh mode 6
  822.     AL = CRT controller mode byte (Phoenix 386 BIOS v1.10)
  823. Desc:    specify the display mode for the currently active display adapter
  824. Notes:    IBM standard modes do not clear the screen if the high bit of AL is set
  825.       (EGA or higher only)
  826.     the Tseng ET4000 chipset is used by the Orchid Prodesigner II, Diamond
  827.       SpeedSTAR VGA, Groundhog Graphics Shadow VGA, Boca Super X VGA,
  828.       Everex EV-673, etc.
  829.     the installation check for Ahead adapters is the signature "AHEAD" at
  830.       C000h:0025h
  831.     the installation check for Paradise adapters is the signature "VGA=" at
  832.       C000h:007Dh
  833.     the installation check for Oak Tech OTI-037/057/067/077 chipsets is the
  834.       signature "OAK VGA" at C000h:0008h
  835.     the installation check for ATI adapters is the signature "761295520" at
  836.       C000h:0031h; the byte at C000h:0043h indicates the chipset revision:
  837.         31h for 18800
  838.         32h for 18800-1
  839.         33h for 18800-2
  840.         34h for 18800-4
  841.         35h for 18800-5
  842.         62h for 68800AX (Mach32) (see also #0629)
  843.       the two bytes at C000h:0040h indicate the adapter type
  844.         "22" EGA Wonder
  845.         "31" VGA Wonder
  846.         "32" EGA Wonder800+
  847.       the byte at C000h:0042h contains feature flags
  848.         bit 1: mouse port present
  849.         bit 4: programmable video clock
  850.       the byte at C000h:0044h contains additional feature flags if chipset
  851.         byte > 30h (see #0008)
  852.     the installation check for Genoa video adapters is the signature
  853.       77h XXh 99h 66h at C000h:NNNNh, where NNNNh is stored at C000h:0037h
  854.       and XXh is
  855.         00h for Genoa 6200/6300
  856.         11h for Genoa 6400/6600
  857.         22h for Genoa 6100
  858.         33h for Genoa 5100/5200
  859.         55h for Genoa 5300/5400
  860.       for SuperEGA BIOS v2.41+, C000h:0057h contains the product level
  861.       for SuperEGA BIOS v3.0+, C000h:0070h contains the signature
  862.         "EXTMODE", indicating support for extended modes
  863. SeeAlso: AX=0070h,AX=007Eh,AX=10E0h,AX=10F0h,AH=40h,AX=6F05h,AH=FFh"GO32"
  864. SeeAlso: INT 33/AX=0028h,INT 5F/AH=00h,INT 62/AX=0001h
  865. Index:    installation check;Tseng ET4000|installation check;Ahead video cards
  866. Index:    installation check;Oak Technologies|installation check;ATI video cards
  867. Index:    installation check;Paradise video|installation check;Genoa video cards
  868.  
  869. Bitfields for ATI additional feature flags:
  870. Bit(s)    Description    (Table 0008)
  871.  0    70 Hz non-interlaced display
  872.  1    Korean (double-byte) characters
  873.  2    45 MHz memory clock rather than 40 MHz
  874.  3    zero wait states
  875.  4    paged ROMs
  876.  6    no 8514/A monitor support
  877.  7    HiColor DAC
  878.  
  879. (Table 0009)
  880. Values for video mode:
  881.      text/ text pixel    pixel    colors disply scrn  system
  882.      grph resol     box  resolution       pages  addr
  883.  00h = T  40x25     8x8   320x200    16gray      8   B800 CGA,PCjr,Tandy
  884.      = T  40x25     8x14  320x350    16gray      8   B800 EGA
  885.      = T  40x25     8x16  320x400     16      8   B800 MCGA
  886.      = T  40x25     9x16  360x400     16      8   B800 VGA
  887.  01h = T  40x25     8x8   320x200     16      8   B800 CGA,PCjr,Tandy
  888.      = T  40x25     8x14  320x350     16      8   B800 EGA
  889.      = T  40x25     8x16  320x400     16      8   B800 MCGA
  890.      = T  40x25     9x16  360x400     16      8   B800 VGA
  891.  02h = T  80x25     8x8   640x200    16gray      4   B800 CGA,PCjr,Tandy
  892.      = T  80x25     8x14  640x350    16gray      8   B800 EGA
  893.      = T  80x25     8x16  640x400     16      8   B800 MCGA
  894.      = T  80x25     9x16  720x400     16      8   B800 VGA
  895.  03h = T  80x25     8x8   640x200     16      4   B800 CGA,PCjr,Tandy
  896.      = T  80x25     8x14  640x350     16/64      8   B800 EGA
  897.      = T  80x25     8x16  640x400     16      8   B800 MCGA
  898.      = T  80x25     9x16  720x400     16      8   B800 VGA
  899.  04h = G  40x25     8x8   320x200      4      .   B800 CGA,PCjr,EGA,MCGA,VGA
  900.  05h = G  40x25     8x8   320x200     4gray      .   B800 CGA,PCjr,EGA
  901.      = G  40x25     8x8   320x200      4      .   B800 MCGA,VGA
  902.  06h = G  80x25     8x8   640x200      2      .   B800 CGA,PCjr,EGA,MCGA,VGA
  903.      = G  80x25      .      .    mono      .   B000 HERCULES.COM on HGC [14]
  904.  07h = T  80x25     9x14  720x350    mono     var  B000 MDA,Hercules,EGA
  905.      = T  80x25     9x16  720x400    mono      .   B000 VGA
  906.  08h = T 132x25     8x8  1056x200     16      .   B800 ATI EGA/VGA Wonder [2]
  907.      = T 132x25     8x8  1056x200    mono      .   B000 ATI EGA/VGA Wonder [2]
  908.      = G  20x25     8x8   160x200     16      .    .  PCjr, Tandy 1000
  909.      = G  80x25     8x16  640x400    color      .    .  Tandy 2000
  910.      = G  90x43     8x8   720x348    mono      .   B000 Hercules + MSHERC.COM
  911.      = G  90x45     8x8   720x360    mono      .   B000 Hercules + HERKULES [11]
  912.      = G  90x29     8x12  720x348    mono      .    .  Hercules + HERCBIOS [15]
  913.  09h = G  40x25     8x8   320x200     16      .    .  PCjr, Tandy 1000
  914.      = G  80x25     8x16  640x400    mono      .    .  Tandy 2000
  915.      = G  90x43     8x8   720x348    mono      .    .  Hercules + HERCBIOS [15]
  916.  0Ah = G  80x25     8x8   640x200      4      .    .  PCjr, Tandy 1000
  917.  0Bh =     reserved                   (EGA BIOS internal use)
  918.      = G  80x25     8x8   640x200     16      .    .  Tandy 1000 SL/TL [13]
  919.  0Ch =     reserved                   (EGA BIOS internal use)
  920.  0Dh = G  40x25     8x8   320x200     16      8   A000 EGA,VGA
  921.  0Eh = G  80x25     8x8   640x200     16      4   A000 EGA,VGA
  922.  0Fh = G  80x25     8x14  640x350    mono      2   A000 EGA,VGA
  923.  10h = G  80x25     8x14  640x350      4      2   A000 64k EGA
  924.      = G    .      .    640x350     16      .   A000 256k EGA,VGA
  925.  11h = G  80x30     8x16  640x480    mono      .   A000 VGA,MCGA,ATI EGA,ATI VIP
  926.  12h = G  80x30     8x16  640x480     16/256K  .   A000 VGA,ATI VIP
  927.      = G  80x30     8x16  640x480     16/64      .   A000 ATI EGA Wonder
  928.      = G    .      .    640x480     16      .    .  UltraVision+256K EGA
  929.  13h = G  40x25     8x8   320x200    256/256K  .   A000 VGA,MCGA,ATI VIP
  930.  14h = T 132x25     Nx16      .     16      .    .  XGA, IBM Enhanced VGA [3]
  931.      = T 132x25     8x16 1056x400     16/256K  .    .  Cirrus CL-GD5420/5422/5426
  932.      = G  80x25     8x8   640x200      .      .    .  Lava Chrome II EGA
  933.      = G    .      .    640x400     16      .    .  Tecmar VGA/AD
  934.  15h = G  80x25     8x14  640x350      .      .    .  Lava Chrome II EGA
  935.  16h = G  80x25     8x14  640x350      .      .    .  Lava Chrome II EGA
  936.      = G    .      .    800x600     16      .    .  Tecmar VGA/AD
  937.  17h = T 132x25      .      .      .      .    .  Tecmar VGA/AD
  938.      = T  80x43     8x8   640x348     16      4   B800 Tseng ET4000 BIOS [10]
  939.      = G  80x34     8x14  640x480      .      .    .  Lava Chrome II EGA
  940.  18h = T  80x30     9x16  720x480     16      1   A000 Realtek RTVGA [12]
  941.      = T 132x25      .      .    mono      .   B000 Cirrus 5320 chipset
  942.      = T 132x44     8x8  1056x352    mono      .   B000 Tseng Labs EVA
  943.      = T 132x44     9x8  1188x352     4gray      2   B000 Tseng ET3000 chipset
  944.      = T 132x44     8x8  1056x352     16/256      2   B000 Tseng ET4000 chipset
  945.      = G  80x34     8x14  640x480      .      .    .  Lava Chrome II EGA
  946.      = G          1024x768     16      .    .  Tecmar VGA/AD
  947.  19h = T  80x43     9x11  720x473     16      1   A000 Realtek RTVGA [12]
  948.      = T 132x25     8x14 1056x350    mono      .   B000 Tseng Labs EVA
  949.      = T 132x25     9x14 1188x350     4gray      4   B000 Tseng ET3000 chipset
  950.      = T 132x25     8x14 1056x350     16/256      4   B000 Tseng ET4000 chipset
  951.      = T 132x34      .      .    mono      .   B000 Cirrus 5320 chipset
  952.  1Ah = T  80x60     9x8   720x480     16      1   A000 Realtek RTVGA [12]
  953.      = T 132x28     8x13 1056x364    mono      .   B000 Tseng Labs EVA
  954.      = T 132x28     9x13 1188x364     4gray      4   B000 Tseng ET3000 chipset
  955.      = T 132x28     8x13 1056x364     16/256      4   B000 Tseng ET4000 chipset
  956.      = T 132x44      .      .    mono      .   B000 Cirrus 5320 chipset
  957.      = G    .      .    640x350    256      .    .  Tecmar VGA/AD
  958.  1Bh = T 132x25     9x14 1188x350     16      1   A000 Realtek RTVGA [12]
  959.      = G    .      .    640x400    256      .    .  Tecmar VGA/AD
  960.  1Ch = T 132x25      .      .      .      .    .  Cirrus 5320 chipset
  961.      = T 132x30     9x16 1188x480     16      1   A000 Realtek RTVGA [12]
  962.      = G    .      .    640x480    256      .    .  Tecmar VGA/AD
  963.  1Dh = T 132x43      .      .      .      .    .  Cirrus 5320 chipset
  964.      = T 132x43     9x11 1188x473     16      1   A000 Realtek RTVGA [12]
  965.      = G    .      .    800x600    256      .    .  Tecmar VGA/AD
  966.  1Eh = T 132x44      .      .      .      .    .  Cirrus 5320 chipset
  967.      = T 132x60     9x8  1188x480     16      1   A000 Realtek RTVGA [12]
  968.  1Fh = G 100x75     8x8   800x600     16      1   A000 Realtek RTVGA
  969.  20h = T 132x25      .      .     16      .    .  Avance Logic AL2101
  970.      = G  40x16      .    240x128    mono      .   B000 HP 95LX/100LX/200LX
  971.      = G 120x45     8x16  960x720     16      1   A000 Realtek RTVGA
  972.  21h = T  80x25      .      .    mono      .   B000 HP 200LX
  973.      = T 132x30      .      .     16      .    .  Avance Logic AL2101
  974.      = T 132x44     9x9  1188x396     16/256K  .   B800 WD90C
  975.      = T 132x44     9x9  1188x396     16      .   B800 Diamond Speedstar 24X
  976.      = T 132x60      .      .     16      2   B800 Tseng ET4000 chipset [10]
  977.      = G  80x43     8x8   720x348    mono      .   B000 DESQview 2.x+Hercules [4]
  978.      = G 128x48     8x16 1024x768     16      1   A000 Realtek RTVGA [12]
  979.  22h = T 132x43      .      .      .      .    .  Allstar Peacock (VGA)
  980.      = T 132x43      .      .     16      .    .  Avance Logic AL2101
  981.      = T 132x44     8x8  1056x352      .      .   B800 Tseng Labs EVA
  982.      = T 132x44     9x8  1188x352     16/256K  2   B800 Tseng ET3000 chipset
  983.      = T 132x44     8x8  1056x352     16/256K  2   B800 Tseng ET4000 chipset
  984.      = T 132x44     8x8  1056x352      .      .    .  Ahead Systems EGA2001
  985.      = T 132x44     8x8  1056x352     16      2   B800 Ahead B
  986.      = T 132x44     8x9  1056x398     16      .    .  STB Lightspeed ET4000/W32P
  987.      = T 132x44      .      .     16      .    .  Orchid Prodesigner VGA
  988.      = G  80x43     8x8   720x348    mono      .   B800 DESQview 2.x+Hercules [4]
  989.      = G  96x64     8x16  768x1024     16      1   A000 Realtek RTVGA
  990.  23h = T 132x25     6x14  792x350      .      .   B800 Tseng Labs EVA
  991.      = T 132x25     9x14 1188x350     16/256K  4   B800 Tseng ET3000 chipset
  992.      = T 132x25     8x14 1056x350     16/256      4   B800 Tseng ET4000 chipset
  993.      = T 132x25     8x14 1056x350      .      .    .  Ahead Systems EGA2001
  994.      = T 132x25     8x14 1056x350     16      4   B800 Ahead B
  995.      = T 132x25     8x8  1056x200     16      .   B800 ATI EGA Wonder,ATI VIP
  996.      = T 132x25      .      .      .      .    .  Cirrus 5320 chipset
  997.      = T 132x28      .      .      .      .    .  Allstar Peacock (VGA)
  998.      = T 132x28      .      .     16      .    .  Orchid Prodesigner VGA
  999.      = T 132x60      .      .     16      .    .  Avance Logic AL2101
  1000.      = G 128x48     8x16 1024x768      4      1   A000 Realtek RTVGA
  1001.  24h = T  80x30      .      .     16      .    .  Avance Logic AL2101
  1002.      = T 132x25      .      .      .      .    .  Allstar Peacock (VGA)
  1003.      = T 132x25      .      .     16      .    .  Orchid Prodesigner VGA
  1004.      = T 132x28     6x13  792x364      .      .   B800 Tseng Labs EVA
  1005.      = T 132x28     9x13 1188x364     16/256K  4   B800 Tseng ET3000 chipset
  1006.      = T 132x28     8x12 1056x336     16      1   B800 Ahead B
  1007.      = T 132x28     8x13 1056x364     16/256K  4   B800 Tseng ET4000 chipset
  1008.      = T 132x28     8x14 1056x392     16      .    .  STB Lightspeed ET4000/W32P
  1009.      = T 132x28      .      .      .      .    .  Cirrus 5320 chipset
  1010.      = G  64x32     8x16  512x512    256      1   A000 Realtek RTVGA
  1011.  25h = T  80x43      .      .     16      .    .  Avance Logic AL2101
  1012.      = G  80x60     8x8   640x480      .      .   A000 Tseng Labs EVA
  1013.      = G  80x60     8x8   640x480     16/256K  1   A000 Tseng ET3000/4000 chipset
  1014.      = G    .      .    640x480     16      .    .  VEGA VGA
  1015.      = G  80x60     8x8   640x480     16      .   A000 Orchid Prodesigner VGA
  1016.      = G  80x60     8x8   640x480     16      1   A000 Ahead B (same as 26h)
  1017.      = G    .      .    640x480     16      .    .  NEC GB-1
  1018.      = G    .      .    640x480     16      .    .  Cirrus 5320 chipset
  1019.      = G    .      .    640x400    256      .    .  Realtek RTVGA
  1020.  26h = T  80x60     8x8   640x480      .      .    .  Tseng Labs EVA
  1021.      = T  80x60     8x8   640x480     16/256K  3   B800 Tseng ET3000/4000 chipset
  1022.      = T  80x60      .      .      .      .    .  Allstar Peacock (VGA)
  1023.      = T  80x60      .      .     16      .    .  Orchid ProDesigner VGA
  1024.      = T  80x60      .      .     16      .    .  Avance Logic AL2101
  1025.      = G  80x60     8x8   640x480      .      .    .  Ahead Systems EGA2001
  1026.      = G  80x60     8x8   640x480     16      1   A000 Ahead B (same as 25h)
  1027.      = G    .      .    640x480    256      .    .  Realtek RTVGA
  1028.  27h = T 132x25     8x8  1056x200    mono      .   B000 ATI EGA Wonder,ATI VIP
  1029.      = G    .      .    720x512     16      .    .  VEGA VGA
  1030.      = G    .      .    720x512     16      .    .  Genoa
  1031.      = G 100x75     8x8   800x600    256      1   A000 Realtek RTVGA [12]
  1032.      = G    .      .    960x720     16      .    .  Avance Logic AL2101
  1033.  28h = T ???x???  .      .      .      .    .  VEGA VGA
  1034.      = G    .      .    512x512    256      .    .  Avance Logic AL2101
  1035.      = G    .      .   1024x768    256      .    .  Realtek RTVGA (1meg)
  1036.  29h = G    .      .    640x400    256      .    .  Avance Logic AL2101
  1037.      = G    .      .    800x600     16      .    .  VEGA VGA
  1038.      = G 100x37     8x16  800x600     16      .   A000 Orchid
  1039.      = G    .      .    800x600     16      .   A000 STB,Genoa,Sigma
  1040.      = G    .      .    800x600     16      .    .  Allstar Peacock (VGA)
  1041.      = G 100x37     8x16  800x600     16/256K  1   A000 Tseng ET3000/4000 chipset
  1042.      = G    .      .    800x600    ???      .    .  EIZO MDB10
  1043.      = G    .      .    800x600     16      .    .  Cirrus 5320 chipset
  1044.      = G   NA      .    800x600     16      .    .  Compaq QVision 1024/1280
  1045.      = G    .      .   1024x1024 256      .    .  Realtek RTVGA BIOS v3.C10
  1046.  2Ah = T 100x40      .      .      .      .    .  Allstar Peacock (VGA)
  1047.      = T 100x40     8x16  800x640     16      .    .  Orchid Prodesigner VGA
  1048.      = T 100x40     8x15  800x600     16/256K  4   B800 Tseng ET3000/4000 chipset
  1049.      = T 100x40     8x15  800x600     16      .    .  STB Lightspeed ET4000/W32P
  1050.      = G    .      .    640x480    256      .    .  Avance Logic AL2101
  1051.      = G    .      .   1280x1024     16      .    .  Realtek RTVGA
  1052.  2Bh = G    .      .    800x600     16      .    .  Avance Logic AL2101
  1053.  2Ch = G    .      .    800x600    256      .    .  Avance Logic AL2101
  1054.  2Dh = G    .      .    640x350    256      .    .  VEGA VGA
  1055.      = G    .      .    640x350    256/256K  .   A000 Orchid, Genoa, STB
  1056.      = G  80x25     8x14  640x350    256/256K  1   A000 Tseng ET3000/4000 chipset
  1057.      = G    .      .    640x350    256      .    .  Cirrus 5320 chipset
  1058.      = G  80x25     8x14  640x350    256      .    .  STB Lightspeed ET4000/W32P
  1059.      = G    .      .    768x1024     16      .    .  Avance Logic AL2101
  1060.  2Eh = G    .      .    640x480    256      .    .  VEGA VGA
  1061.      = G  80x30     8x16  640x480 256/256K      .   A000 Orchid
  1062.      = G    .      .    640x480 256/256K      .   A000 STB,Genoa,Sigma
  1063.      = G  80x30     8x16  640x480 256/256K      1   A000 Tseng ET3000/4000 chipset
  1064.      = G    .      .    640x480 256/256K      .    .  Compaq QVision 1024/1280
  1065.      = G    .      .    768x1024 256      .    .  Avance Logic AL2101
  1066.  2Fh = T 160x50     8x8  1280x400     16      4   B800 Ahead B (Wizard/3270)
  1067.      = G    .      .    720x512    256      .    .  VEGA VGA
  1068.      = G    .      .    720x512    256      .    .  Genoa
  1069.      = G  80x25     8x16  640x400 256/256K      1   A000 Tseng ET4000 chipset
  1070.      = G    .      .   1024x768      4      .    .  Avance Logic AL2101
  1071.  30h = G    .      .    800x600    256      .    .  VEGA VGA
  1072.      = G 100x37     8x16  800x600 256/256K      .   A000 Orchid
  1073.      = G    .      .    800x600 256/256K      .   A000 STB,Genoa,Sigma
  1074.      = G    .      .    720x350      2      .    .  3270 PC
  1075.      = G    .      .    800x600    256      .    .  Cardinal
  1076.      = G    .      .      .      .      .   B800 AT&T 6300
  1077.      = G 100x37     8x16  800x600 256/256K      1   A000 Tseng ET3000/4000 chipset
  1078.      = G    .      .   1024x768     16      .    .  Avance Logic AL2101
  1079.  31h = G    .      .   1024x768    256      .    .  Avance Logic AL2101
  1080.  32h = T  80x34     8x10      .     16      4   B800 Ahead B (Wizard/3270)
  1081.      = G    .      .    640x480    256      .    .  Compaq QVision 1024/1280
  1082.  33h = T 132x44     8x8      .     16      .   B800 ATI EGA Wonder,ATI VIP
  1083.      = T  80x34     8x8      .     16      4   B800 Ahead B (Wizard/3270)
  1084.  34h = T  80x66     8x8      .     16      4   B800 Ahead B (Wizard/3270)
  1085.      = G    .      .    800x600    256      .    .  Compaq QVision 1024/1280
  1086.  36h = G    .      .    960x720     16      .    .  VEGA VGA, STB
  1087.      = G    .      .    960x720     16      .   A000 Tseng ET3000 only
  1088.      = G    .      .   1280x1024     16      .    .  Avance Logic AL2101
  1089.  37h = T 132x44     8x8      .    mono      .   B800 ATI EGA Wonder,ATI VIP
  1090.      = G    .      .   1024x768     16      .    .  VEGA VGA
  1091.      = G 128x48     8x16 1024x768     16      .   A000 Orchid
  1092.      = G    .      .   1024x768     16      .   A000 STB,Genoa,Sigma
  1093.      = G    .      .   1024x768     16      .    .  Definicon
  1094.      = G 128x48     8x16 1024x768     16      1   A000 Tseng ET3000/4000 chipset
  1095.      = G    .      .   1024x768     16      .    .  Compaq QVision 1024/1280
  1096.      = G    .      .   1280x1024 256      .    .  Avance Logic AL2101
  1097.  38h = G    .      .   1024x768    256      .    .  STB VGA/EM-16 Plus (1MB)
  1098.      = G 128x48     8x16 1024x768    256/256K  1   A000 Tseng ET4000 chipset
  1099.      = G    .      .   1024x768    256      .    .  Orchid ProDesigner II
  1100.      = G    .      .   1024x768    256      .    .  Compaq QVision 1024/1280
  1101.  39h = G    .      .   1280x1024     16      .    .  Compaq QVision 1280
  1102.  3Ah = G    .      .   1280x1024    256      .    .  Compaq QVision 1280
  1103.  3Bh = G    .      .    512x480    256      .    .  Compaq QVision 1024/1280
  1104.  3Ch = G    .      .    640x400     64K      .    .  Compaq QVision 1024/1280
  1105.  3Dh = G    .      .   1280x1024     16      .    .  Definicon
  1106.      = G 128x64     8x16 1280x1024     16      1   A000 Tseng ET4000 v3.00 [1,7]
  1107.  3Eh = G    .      .   1280x961     16      .    .  Definicon
  1108.      = G    .      .    640x480     64K      .    .  Compaq QVision 1024/1280
  1109.  3Fh = G    .      .   1280x1024 256      .    .  Hercules ??? (ET4000W32)
  1110.      = G    .      .    800x600     64K      .    .  Compaq QVision 1024/1280
  1111.  40h = T  80x43      .      .      .      .    .  VEGA VGA, Tecmar VGA/AD
  1112.      = T  80x43      .      .      .      .    .  Video7 V-RAM VGA
  1113.      = T  80x43      .      .      .      .    .  Tatung VGA
  1114.      = T 100x30      .      .     16      .    .  MORSE VGA
  1115.      = T 100x30      .      .      .      .    .  Cirrus 510/520 chipset
  1116.      = T  80x25      .    720x350    mono      .    .  Genoa SuperEGA BIOS 3.0+
  1117.      = G    .      .    320x200     64K      .    .  Avance Logic AL2101
  1118.      = G  80x25     8x16  640x400      2      1   B800 AT&T 6300, AT&T VDC600
  1119.      = G  80x25     8x16  640x400      2      1   B800 Olivetti Quaderno
  1120.      = G  80x25     8x16  640x400      2      1   B800 Compaq Portable
  1121.      = G    .      .   1024x768     64K      .    .  Compaq QVision 1280
  1122.  41h = T 132x25      .      .      .      .    .  VEGA VGA
  1123.      = T 132x25      .      .      .      .    .  Tatung VGA
  1124.      = T 132x25      .      .      .      .    .  Video7 V-RAM VGA
  1125.      = T 100x50      .      .     16      .    .  MORSE VGA
  1126.      = T 100x50      .      .      .      .    .  Cirrus 510/520 chipset
  1127.      = T  80x34     9x14  720x476     16/256K  .   B800 WD90C
  1128.      = T  80x34     9x14      .     16      .   B800 Diamond Speedstar 24X
  1129.      = G    .      .    512x512     64K      .    .  Avance Logic AL2101
  1130.      = G    .      .    640x200     16      1    .  AT&T 6300
  1131.      = G  80x25      .    720x348    mono      .   B000 Genoa SuperEGA BIOS 3.0+
  1132.  42h = T 132x43      .      .      .      .    .  VEGA VGA
  1133.      = T 132x43      .      .      .      .    .  Tatung VGA
  1134.      = T 132x43      .      .      .      .    .  Video7 V-RAM VGA
  1135.      = T  80x34     9x10      .      4      4   B800 Ahead B (Wizard/3270)
  1136.      = T 100x60      .      .     16      .    .  MORSE VGA
  1137.      = T 100x60      .      .      .      .    .  Cirrus 510/520 chipset
  1138.      = G  80x25     8x16  640x400     16      .    .  AT&T 6300, AT&T VDC600
  1139.      = G    .      .    640x400     64K      .    .  Avance Logic AL2101
  1140.      = G  80x25      .    720x348    mono      .   B800 Genoa SuperEGA BIOS 3.0+
  1141.  43h = T  80x60      .      .      .      .    .  VEGA VGA
  1142.      = T  80x60      .      .      .      .    .  Tatung VGA
  1143.      = T  80x60      .      .      .      .    .  Video7 V-RAM VGA
  1144.      = T  80x45     9x8      .      4      4   B800 Ahead B (Wizard/3270)
  1145.      = T 100x75      .      .     16      .    .  MORSE VGA
  1146.      = T  80x29      .    720x348    mono      .    .  Genoa SuperEGA BIOS 3.0+
  1147.      = G    .      . 640x200 of 640x400 viewport       AT&T 6300 (unsupported)
  1148.      = G    .      .    640x480     64K      .    .  Avance Logic AL2101
  1149.  44h =    disable VDC and DEB output        .  AT&T 6300
  1150.      = T 100x60      .      .      .      .    .  VEGA VGA
  1151.      = T 100x60      .      .      .      .    .  Tatung VGA
  1152.      = T 100x60      .      .      .      .    .  Video7 V-RAM VGA
  1153.      = T  80x32      .    720x352    mono      .    .  Genoa SuperEGA BIOS 3.0+
  1154.      = G    .      .    800x600     64K      .    .  Avance Logic AL2101
  1155.  45h = T 132x28      .      .      .      .    .  Tatung VGA
  1156.      = T 132x28      .      .      .      .    .  Video7 V-RAM VGA
  1157.      = T  80x44      .    720x352    mono      .    .  Genoa SuperEGA BIOS 3.0+
  1158.  46h = T 132x25     8x14      .    mono      .    .  Genoa 6400
  1159.      = T 132x25     9x14      .    mono      .    .  Genoa SuperEGA BIOS 3.0+
  1160.      = G 100x40     8x15  800x600      2      .    .  AT&T VDC600
  1161.  47h = T 132x29     8x12      .    mono      .    .  Genoa 6400
  1162.      = T 132x29     9x12      .    mono      .    .  Genoa SuperEGA BIOS 3.0+
  1163.      = T 132x28     9x16 1188x448     16/256K  .   B800 WD90C
  1164.      = T 132x28     9x16      .     16      .   B800 Diamond Speedstar 24X
  1165.      = G 100x37     8x16  800x600     16      .    .  AT&T VDC600
  1166.  48h = T 132x32     8x12      .    mono      .    .  Genoa 6400
  1167.      = T 132x32     9x11      .    mono      .    .  Genoa SuperEGA BIOS 3.0+
  1168.      = G  80x50     8x8   640x400      2      .   B800 AT&T 6300, AT&T VDC600
  1169.      = G  80x50     8x8   640x400      2      .   B800 Olivetti Quaderno
  1170.  49h = T 132x44     8x8      .    mono      .    .  Genoa 6400
  1171.      = T 132x44     9x8      .    mono      .    .  Genoa SuperEGA BIOS 3.0+
  1172.      = G  80x30     8x16  640x480      .      .    .  Lava Chrome II EGA
  1173.      = G  80x30     8x16  640x480      .      .   A000 Diamond Stealth64 Video 2xx1
  1174.  4Bh = G 100x37     8x16  800x600      .      .   A000 Diamond Stealth64 Video 2xx1
  1175.  4Dh = T 120x25      .      .      .      .    .  VEGA VGA
  1176.      = G    .      .    512x480     16M      .    .  Compaq QVision 1024/1280
  1177.      = G 128x48     8x16 1024x768      .      .   A000 Diamond Stealth64 Video 2xx1
  1178.  4Eh = T 120x43      .      .      .      .    .  VEGA VGA
  1179.      = T  80x60     8x8      .     16/256K  .   B800 Oak OTI-067/OTI-077 [8]
  1180.      = G    .      .    640x400     16M      .    .  Compaq QVision 1024/1280
  1181.      = G 144x54     8x16 1152x864      .      .   A000 Diamond Stealth64 Video 2xx1
  1182.  4Fh = T 132x25      .      .      .      .    .  VEGA VGA
  1183.      = T 132x60      .      .      .      .    .  some Oak Tech VGA [8]
  1184.      = G    .      .    640x480     16M      .    .  Compaq QVision 1280
  1185.  50h = T  80x30     8x16      .     16/256K  .   B800 Trident TVGA 8800/8900
  1186.      = T  80x34      .      .      .      .    .  Lava Chrome II EGA
  1187.      = T  80x43      .      .    mono      .    .  VEGA VGA
  1188.      = T 132x25     9x14      .    mono      .    .  Ahead Systems EGA2001
  1189.      = T 132x25     9x14      .      4      4   B800 Ahead B
  1190.      = T 132x25     8x14      .     16      8   B800 OAK Technologies VGA-16
  1191.      = T 132x25     8x14      .     16/256K  .   B800 Oak OTI-037/067/077 [8]
  1192.      = T 132x25     8x14 1056x350     16      8   B800 UM587 chipset
  1193.      = T 132x30      .      .     16      .    .  MORSE VGA
  1194.      = T 132x30      .      .      .      .    .  Cirrus 510/520 chipset
  1195.      = G  80x30     8x16  640x480     16      .    .  Paradise EGA-480
  1196.      = G  80x30     8x16  640x480     16      .    .  NEL Electronics BIOS
  1197.      = G    .      .    640x480    mono???      .    .  Taxan 565 EGA
  1198.      = G  40x25     8x8   320x200      .      .    .  Genoa SuperEGA BIOS 3.0+
  1199.  51h = T  80x30     8x16      .      .      .    .  Paradise EGA-480
  1200.      = T  80x30     9x16      .      .      .    .  NEL Electronics BIOS
  1201.      = T  80x30      .      .      .      .    .  Lava Chrome II EGA
  1202.      = T  80x43     8x11      .     16/256K  .   B800 Trident TVGA 8800/8900
  1203.      = T 132x25      .      .    mono      .    .  VEGA VGA
  1204.      = T 132x28     9x12      .      4      4   B800 Ahead B
  1205.      = T 132x43     8x8      .     16      5   B800 OAK Technologies VGA-16
  1206.      = T 132x43     8x8      .     16/256K  .   B800 Oak OTI-037/067/077
  1207.      = T 132x43     8x8  1056x344     16      5   B800 UM587 chipset
  1208.      = T 132x50      .      .     16      .    .  MORSE VGA
  1209.      = T 132x50      .      .      .      .    .  Cirrus 510/520 chipset
  1210.      = G  80x34     8x14  640x480     16      .    .  ATI EGA Wonder
  1211.      = G  80x25     8x8   640x200      .      .    .  Genoa SuperEGA BIOS 3.0+
  1212.  52h = T  80x60      .      .      .      .    .  Lava Chrome II EGA
  1213.      = T  80x60     8x8      .     16/256K  .   B800 Trident TVGA 8800/8900
  1214.      = T 132x43      .      .    mono      .    .  VEGA VGA
  1215.      = T 132x44     9x8      .    mono      .    .  Ahead Systems EGA2001
  1216.      = T 132x44     9x8      .      4      2   B800 Ahead B
  1217.      = T 132x60      .      .     16      .    .  MORSE VGA
  1218.      = T 132x60      .      .      .      .    .  Cirrus 510/520 chipset
  1219.      = G  80x25     8x19  640x480     16      1   A000 AX VGA (Kanji&superimpose)
  1220.      = G  94x29     8x14  752x410     16      .    .  ATI EGA Wonder
  1221.      = G 100x75     8x8   800x600     16      1   A000 OAK Technologies VGA-16
  1222.      = G 100x75     8x8   800x600     16      .   A000 Oak OTI-037 chipset [8]
  1223.      = G 100x37     8x16  800x600     16      .   A000 Oak OTI-067/077 chips [8]
  1224.      = G 100x75     8x8   800x600     16      .   A000 UM587 chipset
  1225.      = G 128x30     8x16 1024x480     16      .    .  NEL Electronics BIOS
  1226.  53h = T  80x25     8x16      .      .      .    .  NEL Electronics BIOS
  1227.      = T  80x60      .      .     16      .    .  MORSE VGA
  1228.      = T  80x60      .      .      .      .    .  Cirrus 510/520 chipset
  1229.      = T 132x25     8x14      .     16/256K  .   B800 Trident TVGA 8800/8900
  1230.      = T 132x43      .      .      .      .    .  Lava Chrome II EGA
  1231.      = G  80x25     8x19  640x480     16      1   A000 AX VGA (Kanji, no superimp.)
  1232.      = G    .      .    640x480    256      .    .  Oak VGA
  1233.      = G  80x30     8x16  640x480    256      .   A000 Oak OTI-067/OTI-077 [8]
  1234.      = G 100x40     8x14  800x560     16      .    .  ATI EGA Wonder,ATI VIP
  1235.      = G    .      .      .      .      .    .  AX PC
  1236.  54h = T 132x25      .      .      .      .    .  Lava Chrome II EGA
  1237.      = T 132x30     8x16      .     16/256K  .   B800 Trident TVGA 8800/8900
  1238.      = T 132x43     8x8      .      .      .    .  Paradise EGA-480
  1239.      = T 132x43     8x8      .      .      .    .  NEL Electronics BIOS
  1240.      = T 132x43     7x9      .     16/256K  .   B800 Paradise VGA
  1241.      = T 132x43     8x9      .     16/256K  .   B800 Paradise VGA on multisync
  1242.      = T 132x43      .      .      .      .    .  Taxan 565 EGA
  1243.      = T 132x43      .      .      .      .    .  AST VGA Plus
  1244.      = T 132x43      .      .      .      .    .  Hewlett-Packard D1180A
  1245.      = T 132x43     7x9      .     16      .    .  AT&T VDC600
  1246.      = T 132x43     9x9  1188x387     16/256K  .   B800 WD90C
  1247.      = T 132x43     9x9  1188x387     16/256K  .   B800 Diamond Speedstar 24X
  1248.      = T 132x43     9x9  1188x387     16/256K  .   B800 Diamond Stealth 24
  1249.      = T 132x43     8x8      .      .      .   B800 Diamond Stealth64 Video 2xx1
  1250.      = T 132x43     8x8  1056x350     16/256K  .    .  Cirrus CL-GD5420/5422/5426
  1251.      = T 132x50     8x8      .     16      .   A000 NCR 77C22 [9]
  1252.      = G 100x42     8x14  800x600     16      .   A000 ATI EGA Wonder, VGA Wonder
  1253.      = G 100x42     8x14  800x600     16      .   A000 ATI Ultra 8514A, ATI XL
  1254.      = G    .      .    800x600    256      .   A000 Oak VGA
  1255.      = G 100x37     8x16  800x600    256      .   A000 Oak OTI-067/077 chips [8]
  1256.  55h = T  80x66     8x8      .     16/256K  .   A000 ATI VIP
  1257.      = T 132x25     8x14      .      .      .    .  Paradise EGA-480
  1258.      = T 132x25     8x14      .      .      .    .  NEL Electronics BIOS
  1259.      = T 132x25     7x16      .     16/256K  .   B800 Paradise VGA
  1260.      = T 132x25     8x16      .     16/256K  .   B800 Paradise VGA on multisync
  1261.      = T 132x25      .      .      .      .    .  Taxan 565 EGA
  1262.      = T 132x25      .      .      .      .    .  AST VGA Plus
  1263.      = T 132x25      .      .      .      .    .  Hewlett-Packard D1180A
  1264.      = T 132x25     7x16      .     16      .    .  AT&T VDC600
  1265.      = T 132x25     8x16      .     16      .   A000 NCR 77C22 [9]
  1266.      = T 132x25     9x16 1188x400     16/256K  .   B800 WD90C
  1267.      = T 132x25     9x16 1188x400     16/256K  .   B800 Diamond Speedstar 24X
  1268.      = T 132x25     9x16 1188x400     16/256K  .   B800 Diamond Stealth 24
  1269.      = T 132x25     8x16      .      .      .   B800 Diamond Stealth64 Video 2xx1
  1270.      = T 132x25     8x14 1056x350     16/256K  .    .  Cirrus CL-GD5420/5422/5426
  1271.      = T 132x43     8x11      .     16/256K  .   B800 Trident TVGA 8800/8900
  1272.      = G  94x29     8x14  752x410      .      .    .  Lava Chrome II EGA
  1273.      = G 128x48     8x16 1024x768     16/256K  .   A000 ATI VGA Wonder v4+  [5]
  1274.      = G    .      .   1024x768     16/256K  .    .  ATI VGA Wonder Plus
  1275.      = G    .      .   1024x768     16/256K  .    .  ATI Ultra 8514A,ATI XL
  1276.      = G 128x48     8x16 1024x768      4      .   A000 Oak OTI-067/077 chips [8]
  1277.  56h = T 132x43     8x8      .      3???      2   B000 NSI Smart EGA+
  1278.      = T 132x43     7x9      .      4      .   B000 Paradise VGA
  1279.      = T 132x43     8x9      .      4      .   B000 Paradise VGA on multisync
  1280.      = T 132x43      .      .    mono      .    .  Taxan 565 EGA
  1281.      = T 132x43     7x9      .      2      .    .  AT&T VDC600
  1282.      = T 132x43     9x8      .      .      .    .  NEL Electronics BIOS
  1283.      = T 132x50     8x8      .      4      .   A000 NCR 77C22 [9]
  1284.      = T 132x60     8x8      .     16/256K  .   B800 Trident TVGA 8800/8900
  1285.      = G    .      .   1024x768     16      .   A000 Oak VGA
  1286.      = G 128x48     8x16 1024x768     16      .   A000 Oak OTI-067/077 chips [8]
  1287.  57h = T 132x25     8x14      .      3???      4   B000 NSI Smart EGA+
  1288.      = T 132x25     7x16      .      4      .   B000 Paradise VGA
  1289.      = T 132x25     8x16      .      4      .   B000 Paradise VGA on multisync
  1290.      = T 132x25     9x14      .      .      .    .  NEL Electronics BIOS
  1291.      = T 132x25      .      .    mono      .    .  Taxan 565 EGA
  1292.      = T 132x25     7x16      .      2      .    .  AT&T VDC600
  1293.      = T 132x25     9x14      .     16/256K  .   B800 Trident TVGA 8800/8900
  1294.      = T 132x25     8x16      .      4      .   A000 NCR 77C22 [9]
  1295.      = G  96x48     8x16  768x1024     16      .   A000 Oak OTI-067/077 chips [8]
  1296.  58h = T  80x33     8x14      .     16      .   B800 ATI EGA Wonder,ATI VIP
  1297.      = T  80x32     9x16      .     16      .    .  Genoa 6400
  1298.      = T  80x43     8x8      .      .      .    .  NEL Electronics BIOS
  1299.      = T 132x30     9x16      .     16/256K  .   B800 Trident TVGA 8800/8900
  1300.      = G 100x75     8x8   800x600     16/256K  .   A000 Paradise VGA
  1301.      = G 100x75     8x8   800x600     16      .    .  AT&T VDC600
  1302.      = G 100x75     8x8   800x600     16      .   A000 NCR 77C22 [9]
  1303.      = G 100x75     8x8   800x600     16      .   A000 Diamond Speedstar 24X
  1304.      = G 100x75     8x8   800x600     16/256K  .   A000 Paradise VGA, WD90C
  1305.      = G    .      .    800x600     16      .    .  AST VGA Plus, Compaq VGA
  1306.      = G    .      .    800x600     16      .    .  Dell VGA
  1307.      = G    .      .    800x600     16      .    .  Hewlett-Packard D1180A
  1308.      = G    .      .    800x600    ???      .    .  ELT VGA PLUS 16
  1309.      = G 100x37     8x16  800x600     16/256K  .   A000 Cirrus CL-GD5420/5422/5426
  1310.      = G 160x64     8x16 1280x1024     16      .   A000 Oak OTI-077 chipset [8]
  1311.  59h = T  80x43     9x8      .      .      .    .  NEL Electronics BIOS
  1312.      = T  80x66     8x8      .     16/256K  .   A000 ATI VIP
  1313.      = T 132x43     9x11      .     16/256K  .   B800 Trident TVGA 8800/8900
  1314.      = G 100x75     8x8   800x600      2      .   A000 Paradise VGA
  1315.      = G 100x75     8x8   800x600      2      .    .  AT&T VDC600
  1316.      = G    .      .    800x600      2      .    .  AST VGA Plus, Compaq VGA
  1317.      = G    .      .    800x600      2      .    .  Dell VGA
  1318.      = G    .      .    800x600      2      .    .  Hewlett-Packard D1180A
  1319.      = G 100x75     8x8   800x600      2      .   A000 NCR 77C22 [9]
  1320.      = G 128x48     8x16 1024x768    256      .   A000 Oak OTI-077 chipset [8]
  1321.  5Ah = T  80x60     8x8      .      .      .    .  NEL Electronics BIOS
  1322.      = T 132x60     9x8      .     16/256K  .   B800 Trident TVGA 8800/8900
  1323.      = G 128x48     8x16 1024x768      2      .   A000 NCR 77C22 [9]
  1324.  5Bh = T  80x30     8x16      .      .      .   B800 ATI VGA Wonder (undoc)
  1325.      = G    .      .    640x350    256      .    .  Genoa 6400
  1326.      = G  80x25     8x16  640x400     32K      .   A000 Oak OTI-067/077 chips [8]
  1327.      = G    .      .    800x600     16      .    .  Maxxon, SEFCO TVGA, Imtec
  1328.      = G 100x75     8x8   800x600     16/256K  .   A000 Trident TVGA 8800, 8900
  1329.      = G    .      .    800x600    ???      .    .  Vobis MVGA
  1330.      = G 100x37     8x16  800x600      .      .    .  NEL Electronics BIOS
  1331.      = G 128x48     8x16 1024x768     16      .   A000 NCR 77C22 [1,9]
  1332.  5Ch = T 100x37     8x16      .      .      .    .  NEL Electronics BIOS
  1333.      = G    .      .    640x400    256      .    .  Logix, ATI Prism Elite
  1334.      = G    .      .    640x400    256      .    .  Maxxon, SEFCO TVGA, Imtec
  1335.      = G  80x25     8x16  640x400    256/256K  .   A000 Zymos Poach, Hi Res 512
  1336.      = G  80x25     8x16  640x400    256/256K  .   A000 Trident TVGA 8800/8900
  1337.      = G  80x30     8x16  640x480    256      .    .  Genoa 6400
  1338.      = G  80x30     8x16  640x480     32K      .   A000 Oak OTI-077 chipset [8]
  1339.      = G 100x75     8x8   800x600    256      .   A000 NCR 77C22 [9]
  1340.      = G 100x75     8x8   800x600    256/256K  .   A000 WD90C
  1341.      = G 100x75     8x8   800x600    256/256K  .   A000 Diamond Speedstar 24X
  1342.      = G 100x37     8x16  800x600    256/256K  .   A000 Cirrus CL-GD5420/5422/5426
  1343.  5Dh = T 100x75     8x8      .      .      .    .  NEL Electronics BIOS
  1344.      = G  80x25     8x14  640x350     64K      .    .  STB Lightspeed ET4000/W32P
  1345.      = G    .      .    640x480    256      .    .  Logix, ATI Prism Elite
  1346.      = G    .      .    640x480    256      .    .  Maxxon, SEFCO TVGA, Imtec
  1347.      = G  80x30     8x16  640x480    256/256K  .   A000 Zymos Poach, Hi Res 512
  1348.      = G  80x30     8x16  640x480    256/256K  .   A000 Trident TVGA 8800 (512K)
  1349.      = G 128x48     8x16 1024x768     16      .   A000 NCR 77C22 [9]
  1350.      = G 128x48     8x16 1024x768     16/256K  .   A000 WD90C
  1351.      = G 128x48     8x16 1024x768     16      .   A000 Diamond Speedstar 24X
  1352.      = G 128x48     8x16 1024x768     16/256K  .   A000 Cirrus CL-GD5420/5422/5426
  1353.  5Eh = G    .      .    640x400    256      .    .  Paradise VGA,VEGA VGA
  1354.      = G    .      .    640x400    256      .    .  AST VGA Plus, NCR 77C22
  1355.      = G    .      .    640x400    256      .    .  Compaq VGA, Dell VGA
  1356.      = G  80x25     8x16  640x400    256      .    .  AT&T VDC600
  1357.      = G  80x25     8x16  640x400    256      .   A000 NCR 77C22 [9]
  1358.      = G  80x25     8x16  640x400    256/256K  .   A000 WD90C
  1359.      = G  80x25     8x16  640x400    256/256K  .   A000 Diamond Speedstar 24X
  1360.      = G    .      .    800x600     16      .    .  Logix, ATI Prism Elite
  1361.      = G 100x37     8x16  800x600     16      .    .  NEL Electronics BIOS
  1362.      = G 100x75     8x8   800x600    256      .    .  Genoa 6400
  1363.      = G 100x75     8x8   800x600    256/256K  .   A000 Zymos Poach, Trident 8900
  1364.      = G 100x75     8x8   800x600    256/256K  .   A000 Hi Res 512
  1365.  5Fh = G  80x25     8x16  640x400     64K      .    .  STB Lightspeed ET4000/W32P
  1366.      = G    .      .    640x480    256      .    .  Paradise VGA
  1367.      = G    .      .    640x480    256      .    .  AST VGA Plus, NCR 77C22
  1368.      = G    .      .    640x480    256      .    .  Compaq VGA, Dell VGA
  1369.      = G    .      .    640x480    256      .    .  Hewlett-Packard D1180A
  1370.      = G  80x30     8x16  640x480    256      .    .  AT&T VDC600 (512K)
  1371.      = G  80x30     8x16  640x480    256      .   A000 NCR 77C22 [9]
  1372.      = G  80x30     8x16  640x480    256/256K  .   A000 WD90C
  1373.      = G  80x30     8x16  640x480    256/256K  .   A000 Diamond Speedstar 24X
  1374.      = G  80x30     8x16  640x480    256/256K  .   A000 Cirrus CL-GD5420/5422/5426
  1375.      = G    .      .   1024x768     16      .    .  Logix, ATI Prism Elite
  1376.      = G    .      .   1024x768     16      .    .  Maxxon, Imtec
  1377.      = G 128x48     8x16 1024x768     16      .    .  Genoa 6400
  1378.      = G 128x48     8x16 1024x768     16/256K  .   A000 Zymos Poach, Hi Res 512
  1379.      = G 128x48     8x16 1024x768     16/256K  .   A000 Trident TVGA 88/8900 512K
  1380.  60h = T 132x25     8x14      .     16/64      8   B800 Quadram Ultra VGA
  1381.      = T 132x25     8x14      .     16      .    .  Genoa 6400
  1382.      = T 132x25     8x14      .     16      .    .  Genoa SuperEGA BIOS 3.0+
  1383.      = T 132x25      .      .      .      .    .  Cirrus 5320 chipset
  1384.      = T 132x25      .      .     16      .    .  Chips&Technologies chipset
  1385.      = G  80x???  .    ???x400      .      .    .  Corona/Cordata BIOS 4.10+
  1386.      = G  80x25     8x16  640x400    256      1   A000 Ahead A, Ahead B
  1387.      = G    .      .    752x410      .      .    .  VEGA VGA
  1388.      = G    .      .    752x410     16      .    .  Tatung VGA
  1389.      = G    .      .    752x410     16      .    .  Video7 V-RAM VGA
  1390.      = G 128x48     8x16 1024x768      4/256K  .   A000 Trident TVGA 8900
  1391.      = G 128x48     8x16 1024x768    256/256K  .   A000 WD90C
  1392.      = G 128x48     8x16 1024x768    256/256K  .   A000 Diamond Speedstar 24X
  1393.      = G 128x48     8x16 1024x768    256/256K  .   A000 Cirrus CL-GD5420/5422/5426
  1394.      = G 144x54     8x16 1152x864      .      .   A000 Diamond Stealth64 Video 2xx1
  1395.  61h = T 132x29     8x12      .     16/64      8   B800 Quadram Ultra VGA
  1396.      = T 132x29     8x8      .     16      .    .  Genoa 6400
  1397.      = T 132x29     8x8      .     16      .    .  Genoa SuperEGA BIOS 3.0+
  1398.      = T 132x50      .      .      .      .    .  Cirrus 5320 chipset
  1399.      = T 132x50      .      .     16      .    .  Chips&Technologies chipset
  1400.      = G    .      .    ???x400      .      .    .  Corona/Cordata BIOS 4.10+
  1401.      = G  80x25     8x16  640x400    256      .   A000 ATI VGA Wonder,VGA Wonder+
  1402.      = G  80x25     8x16  640x400    256      .   A000 ATI Ultra 8514A,ATI XL
  1403.      = G  80x25     8x16  640x400      .      .   A000 Diamond Stealth64 Video 2xx1
  1404.      = G  80x30     8x16  640x480    256      1   A000 Ahead A, Ahead B (512K)
  1405.      = G    .      .    720x540      .      .    .  VEGA VGA
  1406.      = G    .      .    720x540     16      .    .  Tatung VGA
  1407.      = G    .      .    720x540     16      .    .  Video7 V-RAM VGA
  1408.      = G  96x64     8x16  768x1024     16/256K  .   A000 Trident TVGA 88/8900 512K
  1409.      = G 128x48     8x16 1024x768    256      .   A000 NCR 77C22 [1,9]
  1410.      = G 144x54     8x16 1152x864      .      .   A000 Diamond Stealth64 Video 2xx1
  1411.  62h = T 132x32     8x11      .     16/64      6   B800 Quadram Ultra VGA
  1412.      = T 132x32     8x12      .     16      .    .  Genoa 6400
  1413.      = T 132x32     8x11      .     16      .    .  Genoa SuperEGA BIOS 3.0+
  1414.      = G    .      .    640x450     16      .    .  Cirrus 510/520 chipset
  1415.      = G  80x30     8x16  640x480    256      .   A000 ATI VGA Wonder,VGA Wonder+
  1416.      = G  80x30     8x16  640x480    256      .   A000 ATI Ultra 8514A,ATI XL
  1417.      = G  80x30     8x16  640x480    32K      .   A000 WD90C
  1418.      = G  80x30     8x16  640x480    32K      .   A000 Diamond Speedstar 24X
  1419.      = G    .      .    800x600      .      .    .  VEGA VGA
  1420.      = G    .      .    800x600     16      .    .  Tatung VGA
  1421.      = G    .      .    800x600     16      .    .  Video7 V-RAM VGA
  1422.      = G 100x75     8x8   800x600    256      1   A000 Ahead A, Ahead B (512K)
  1423.      = G 128x48     8x16 1024x768    256/256K  .   A000 Trident TVGA 8900, Zymos
  1424.      = G 128x48     8x16 1024x768    256      .   A000 NCR 77C22 [9]
  1425.  63h = T 132x44     8x8      .     16/64      5   B800 Quadram Ultra VGA
  1426.      = T 132x44     8x8      .     16      .    .  Genoa 6400
  1427.      = T 132x44     8x8      .     16      .    .  Genoa SuperEGA BIOS 3.0+
  1428.      = G    .      .    720x540     16      .    .  MORSE VGA
  1429.      = G    .      .    720x540     16      .    .  Cirrus 510/520 chipset
  1430.      = G 100x42     8x14  800x600    256      .   A000 ATI VGA Wonder,VGA Wonder+
  1431.      = G 100x42     8x14  800x600    256      .   A000 ATI Ultra 8514A,ATI XL
  1432.      = G    .      .    800x600    32K      .   A000 WD90C
  1433.      = G    .      .    800x600    32K      .   A000 Diamond Speedstar 24X
  1434.      = G 128x48     7x16 1024x768    256      1   A000 Ahead B (1MB)
  1435.      = G    .      .   1024x768      2      .    .  Video7 V-RAM VGA
  1436.  64h = T 132x60     8x8      .     16      .    .  Genoa 6400
  1437.      = G    .      .    640x480    64K      .   A000 Cirrus CL-GD 5422/5426
  1438.      = G    .      .    800x600     16      .    .  MORSE VGA
  1439.      = G    .      .    800x600     16      .    .  Cirrus 510/520 chipset
  1440.      = G    .      .    800x600    ???      .    .  SAMPO-Mira VGA
  1441.      = G    .      .   1024x768      4      .    .  Video7 V-RAM VGA
  1442.      = G 128x48     8x16 1024x768    256      .   A000 ATI VGA Wonder Plus,ATI XL
  1443.      = G 160x64     8x16 1280x1024     16/256K  .   A000 WD90C [1]
  1444.      = G 160x64     8x16 1280x1024     16/256K  .   A000 Diamond Speedstar 24X [1]
  1445.  65h = G    .      .    800x600    64K      .   A000 Cirrus CL-GD 5422/5426
  1446.      = G    .      .   1024x768     16      .    .  Video7 V-RAM VGA
  1447.      = G 128x48     8x16 1024x768     16      .   A000 ATI VGA Wonder
  1448.  66h = T  80x50     8x8   640x400     16/256K  .   B800 WD90C
  1449.      = T  80x50     8x8      .     16      .   B800 Diamond Speedstar 24X
  1450.      = G    .      .    640x400    256      .    .  Tatung VGA
  1451.      = G    .      .    640x400    256      .    .  Video7 V-RAM VGA
  1452.      = G    .      .    640x480    32K      .   A000 Cirrus CL-GD 5422/5426
  1453.  67h = T  80x43     8x8   640x344     16/256K  .   B800 WD90C
  1454.      = T  80x43     8x8      .     16      .   B800 Diamond Speedstar 24X
  1455.      = G    .      .    640x480    256      .    .  Video7 V-RAM VGA
  1456.      = G    .      .    800x600    32K      .   A000 Cirrus CL-GD 5422/5426
  1457.      = G 128x48     8x16 1024x768      4      .   A000 ATI VGA Wonder
  1458.      = G 160x64     8x16 1280x1024     16      .   A000 NCR 77C22 [1,9]
  1459.  68h = G  80x25     8x16  640x400      .      .   A000 Diamond Stealth64 Video 2xx1
  1460.  69h = T 132x50     8x8  1056x400     16/256K  .   B800 WD90C
  1461.      = T 132x50     8x8      .     16      .   B800 Diamond Speedstar 24X
  1462.      = G  80x30     8x16  640x480      .      .   A000 Diamond Stealth64 Video 2xx1
  1463.      = G    .      .    720x540    256      .   A000 Video7 V-RAM VGA
  1464.  6Ah = G    .      .    800x600     16      .   A000 VESA standard interface
  1465.      = G 100x75     8x8   800x600     16      .   A000 Genoa 6400
  1466.      = G 100x75     8x8   800x600     16      .   A000 Diamond Speedstar 24X
  1467.      = G    .      .    800x600     16      .   A000 Ahead A
  1468.      = G 100x75     8x8   800x600     16      1   A000 Ahead B (VESA) [see 71h]
  1469.      = G    .      .    800x600     16      .    .  Zymos Poach, Hi Res 512
  1470.      = G    .      .    800x600     16      .    .  Epson LT-386SX in CRT Mode
  1471.      = G    .      .    800x600     16      .    .  Compuadd 316SL in CRT Mode
  1472.      = G 100x37     8x16  800x600     16/256K  .   A000 Cirrus CL-GD5420/5422/5426
  1473.      = G 100x37     8x16  800x600     16      .   A000 Diamond Stealth64 Video 2xx1
  1474.      = G 100x42     8x14  800x600      .      .   A000 ATI VGA Wonder (undoc)
  1475.      = G    .      .    800x600     16      .   A000 Chips&Technologies chipset
  1476.      = G 160x64     8x16 1280x1024 256      .   A000 NCR 77C22 [1,9]
  1477.  6Bh = T 100x37     8x16      .     16      .    .  Genoa 6400
  1478.      = T 100x37     8x16      .      .      .    .  NEL Electronics BIOS
  1479.      = G 100x37     8x16  800x600      .      .   A000 Diamond Stealth64 Video 2xx1
  1480.  6Ch = G  80x30     8x16  640x480     16M      .   A000 Trident 8900CL/BIOS C04
  1481.      = G 100x75     8x8   800x600    256      .    .  Genoa 6400
  1482.      = G 128x48     8x16 1024x768      2      .   A000 Diamond Stealth64 Video 2xx1
  1483.      = G 160x60     8x16 1280x960     16/256K  .   A000 WD90C [1]
  1484.      = G 160x60     8x16 1280x960     16/256K  .   A000 Diamond Speedstar 24X [1]
  1485.      = G 160x64     8x16 1280x1024     16/256K  .   A000 Cirrus CL-GD 5422/5426 [1]
  1486.  6Dh = G  80x25     8x14  640x350     64K      .   A000 STB Lightspeed ET4000/W32P
  1487.      = G 128x48     8x16 1024x768      .      .   A000 Diamond Stealth64 Video 2xx1
  1488.      = G 160x64     8x16 1280x1024 256/256K  .   A000 Cirrus CL-GD 5422/5426 [1]
  1489.  6Eh = G  40x25     8x8   320x200     64K      .   A000 Cirrus CL-GD 5422/5426
  1490.      = G 160x64     8x16 1280x1024      2      .   A000 Diamond Stealth64 Video 2xx1
  1491.  6Fh = G  40x25     8x8   320x200     16M      .   A000 Cirrus CL-GD 5422/5426
  1492.      = G 160x64     8x16 1280x1024      .      .   A000 Diamond Stealth64 Video 2xx1
  1493.  70h =    extended mode set (see AX=0070h)    .  Everex Micro Enhancer EGA
  1494.      = T  40x25     8x8      .     16      8   B800 Quadram (CGA double scan)
  1495.      = T  40x25     8x8   (CGA dblscan)      .    .  Genoa SuperEGA BIOS 3.0+
  1496.      = G    .      .    360x480    256      .    .  Cirrus 510/520/5320 chips
  1497.      = G  90x28     8x14  720x392     16      1   A000 Ahead B
  1498.      = G  80x30     8x16  640x480      .      .   A000 Diamond Stealth64 Video 2xx1
  1499.      = G    .      .    800x600     16      .    .  C&T chipset, Cardinal
  1500.      = G    .      .   1024x480    256      .   A000 Trident 8900C BIOS C3.0
  1501.  71h = T  80x25     8x8      .     16      8   B800 Quadram (CGA double scan)
  1502.      = T  80x25     8x8   (CGA dblscan)      .    .  Genoa SuperEGA BIOS 3.0+
  1503.      = G    .      .    528x400    256      .    .  Cirrus 510/520 chipset
  1504.      = G  80x30     8x16  640x480     16M      .   A000 Cirrus CL-GD 5422/5426
  1505.      = G  80x30     8x16  640x480      .      .   A000 Diamond Stealth64 Video 2xx1
  1506.      = G 100x35     8x16  800x600     16/64      .   A000 NSI Smart EGA+
  1507.      = G 100x75     8x8   800x600     16      1   A000 Ahead B (same as 6Ah)
  1508.      = G    .      .    960x720     16      .    .  C&T chipset, Cardinal
  1509.      = G    .      .   1024x480    256      .   A000 Trident 8900C BIOS C3.0
  1510.  72h = T  80x60     8x8      .     16      .   B800 Quadram Ultra VGA
  1511.      = T  80x60     8x8      .     16      .   B800 Genoa 6400
  1512.      = T  80x60     8x8      .     16      .   B800 Genoa SuperEGA BIOS 3.0+
  1513.      = G    .      .    528x480    256      .    .  Cirrus 510/520 chipset
  1514.      = G  80x25     8x19  640x480     16      1   A000 DOS/V w/ any VGA
  1515.      = G  80x30     8x16  640x480      .      .   A000 Diamond Stealth64 Video 2xx1
  1516.      = G    .      .    640x480    32K      .   A000 ATI
  1517.      = G    .      .    640x480    16M      .   A000 WD90C
  1518.      = G    .      .    640x480    16M      .   A000 Diamond Speedstar 24X
  1519.      = G    .      .   1024x768     16      .    .  C&T chipset, Cardinal
  1520.  73h = G  80x60     8x8   640x480     16      .   A000 Quadram Ultra VGA
  1521.      = G  80x60     8x8   640x480     16      .    .  Genoa 6400
  1522.      = G  80x60     8x8   640x480     16      .    .  Genoa SuperEGA BIOS 3.0+
  1523.      = G 100x37     8x16  800x600      .      .   A000 Diamond Stealth64 Video 2xx1
  1524.      = T  80x25     8x19  640x475     16      1   none DOS/V, emulated in VGA graph
  1525.  74h = T  80x66     8x8      .     16      .   B800 Quadram Ultra VGA
  1526.      = T  80x66     8x8      .     16      .   B800 Genoa 6400
  1527.      = T  80x66     8x8      .     16      .   B800 Genoa SuperEGA BIOS 3.0+
  1528.      = G    .      .    640x400      2      .   B800 Toshiba 3100 AT&T mode
  1529.      = G  80x30     8x16  640x480     32K      .   A000 Trident 8900C/BIOS C03
  1530.      = G 100x37     8x16  800x600      .      .   A000 Diamond Stealth64 Video 2xx1
  1531.      = G 128x48     8x16 1024x768     16      1   A000 Ahead A, Ahead B (512K)
  1532.      = G    .      .   1024x768     64K      .   A000 Cirrus CL-GD 5422/5426 [1]
  1533.  75h = G  80x30     8x16  640x480     64K      .   A000 Trident 8900C/BIOS C03
  1534.      = G  80x66      .    640x528     16???      .   A000 Quadram Ultra VGA
  1535.      = G  80x66      .    640x528     16      .    .  Genoa SuperEGA BIOS 3.0+
  1536.      = G 100x37     8x16  800x600      .      .   A000 Diamond Stealth64 Video 2xx1
  1537.      = G 128x48     8x16 1024x768      4      1   A000 Ahead B
  1538.  76h = T  94x29     8x14      .     16      .   B800 Quadram Ultra VGA
  1539.      = T  94x29     8x14      .      .      .    .  Genoa SuperEGA BIOS 3.0+
  1540.      = G 100x75     8x8   800x600     32K      .   A000 Trident 8900C/BIOS C03
  1541.      = G 128x48     8x16 1024x768      2      1   A000 Ahead B
  1542.      = G 128x48     8x16 1024x768      .      .   A000 Diamond Stealth64 Video 2xx1
  1543.  77h = G  94x29      .    752x410     16???      .   A000 Quadram Ultra VGA
  1544.      = G  94x29      .    752x410     16      .    .  Genoa SuperEGA BIOS 3.0+
  1545.      = G 100x75     8x8   800x600     64K      .   A000 Trident 8900C/BIOS C03
  1546.      = G 128x48     8x16 1024x768      .      .   A000 Diamond Stealth64 Video 2xx1
  1547.  78h = T 100x37     8x16      .     16      .    .  Genoa 6400
  1548.      = T 100x75     8x8      .     16      .   B800 Quadram Ultra VGA
  1549.      = T 100x75     8x8      .      .      .    .  Genoa SuperEGA BIOS 3.0+
  1550.      = G    .      .    640x400    256      .    .  STB VGA/EM-16 Plus
  1551.      = G    .      .    640x400    256      .    .  Cardinal, C&T chipset
  1552.      = G    .      .    640x400    256      .    .  Cirrus 5320 chipset
  1553.  79h = G    .      .    640x480    256      .    .  Cardinal, C&T chipset
  1554.      = G 100x75      .    800x600     16???      .   A000 Quadram Ultra VGA
  1555.      = G 100x75     8x8   800x600     16      .    .  Genoa SuperEGA BIOS 3.0+
  1556.      = G 100x75     8x8   800x600     16      .    .  Genoa 6400
  1557.  7Ah = T 114x60     8x8      .     16      .   B800 Quadram Ultra VGA
  1558.      = T 114x60     8x8      .      .      .    .  Genoa SuperEGA BIOS 3.0+
  1559.      = G    .      .    720x540    256      .    .  C&T chipset, Cardinal
  1560.  7Bh = G    .      .    800x600    256      .    .  C&T chipset, Cardinal
  1561.      = G 114x60      .    912x480     16???      .   A000 Quadram Ultra VGA
  1562.      = G    .      .    912x480     16      .    .  Genoa SuperEGA BIOS 3.0+
  1563.  7Ch = G    .      .    512x512     16      .    .  Genoa
  1564.      = G    .      .    800x600    256      .    .  C&T 82C453 chipset
  1565.      = G 200x75     8x16 1600x1200      . [16]  .   A000 Diamond Stealth64 Video 2xx1
  1566.  7Dh = G  64x32     8x16  512x512    256      .    .  Genoa
  1567.  7Eh =    special mode set (see AX=007Eh)        .  Paradise VGA, AT&T VDC600
  1568.      = G  80x25     8x16  640x400    256      .    .  Genoa 6400
  1569.      = G    .      .   1024x768    256      .    .  C&T 82C453 chipset
  1570.      = G  90x43      .      .    mono      .   B000 HERCULES.COM on HGC [14]
  1571.  7Fh =    special function set (see AX=007Fh/BH=00h) Paradise VGA, AT&T VDC600
  1572.      = G 128x48     8x16 1024x768      4      .    .  Genoa 6400
  1573.      = G  90x29      .      .    mono      .   B000 HERCULES.COM on HGC [14]
  1574.  82h = T  80x25      .      .    B&W      .    .  AT&T VDC overlay mode [6]
  1575.  83h = T  80x25      .      .      .      .    .  AT&T VDC overlay mode [6]
  1576.  86h = G    .      .    640x200    B&W      .    .  AT&T VDC overlay mode [6]
  1577.  88h = G  90x43     8x8   720x348    mono      .   B000 Hercules + MSHERC.COM
  1578.  C0h = G    .      .    640x400    2/prog palette    .  AT&T VDC overlay mode [6]
  1579.      = G    .      .    640x400    2/prog palette    .  Olivetti Quaderno overlay
  1580.  C4h =    disable output      .      .      .    .  AT&T VDC overlay mode [6]
  1581.  C8h = G  80x50     8x8   640x400      2      .   B800 Olivetti Quaderno overlay
  1582.  D0h = G    .      .    640x400      2      .   B800 DEC VAXmate AT&T mode
  1583. Notes:
  1584. [1] interlaced only
  1585. [2] for ATI EGA Wonder, mode 08h is only valid if SMS.COM is loaded resident.
  1586.       SMS maps mode 08h to mode 27h if the byte at location 0040:0063 is 0B4h,
  1587.       otherwise to mode 23h, thus selecting the appropriate (monochrome or
  1588.       color) 132x25 character mode.
  1589.     for ATI VGA Wonder, mode 08h is the same, and only valid if VCONFIG loaded
  1590.       resident
  1591. [3] early XGA boards support 132-column text but do not have this BIOS mode
  1592. [4] DESQview intercepts calls to change into these two modes (21h is page 0,
  1593.       22h is page 1) even if there is no Hercules graphics board installed
  1594. [5] ATI BIOS v4-1.00 has a text-scrolling bug in this mode
  1595. [6] for AT&T VDC overlay modes, BL contains the DEB mode, which may be 06h,
  1596.       40h, or 44h
  1597. [7] BIOS text support is broken in this undocumented mode; scrolling moves
  1598.       only about 1/3 of the screen (and does even that portion incorrectly),
  1599.       while screen clears only clear about 3/4.
  1600. [8] The Oak OTI-037/067/077 modes are present in the Oak VGA BIOS, which OEMs
  1601.       may choose to use only partially or not at all; thus, not all Oak boards
  1602.       support all "Oak" modes listed here
  1603. [9] this card uses the full 128K A000h-BFFFh range for the video buffer,
  1604.       precluding the use of a monochrome adapter in the same system
  1605. [10] mode 17h supported by Tseng ET4000 BIOS 8.01X dated 09/14/90, but not
  1606.       v8.01X dated 02/28/92; mode 21h supported by 02/28/92 version but not
  1607.       09/14/90 version
  1608. [11] HERKULES simulates a 90x45 text mode in Hercules graphics mode; the
  1609.       installation check for HERKULES.COM is the signature "Herkules" two
  1610.       bytes beyond the INT 10 handler
  1611. [12] The Realtek RTVGA BIOS v3.C10 crashes when attempting to switch into
  1612.       modes 21h or 27h; this version of the BIOS also sets the BIOS data area
  1613.       incorrectly for extended text modes, resulting in scrolling after only
  1614.       24 lines (the VMODE.EXE    utility does set the data area correctly)
  1615. [13] The Tandy 1000SL/TL BIOS does not actually support this mode
  1616. [14] HERCULES.COM is a graphics-mode BIOS extension for Hercules-compatible
  1617.       graphics cards by Soft Warehouse, Inc.  Its installation check is to
  1618.       test whether the word preceding the INT 10 handler is 4137h.
  1619. [15] The Hercules-graphics video modes for HERCBIOS (shareware by Dave
  1620.       Tutelman) may be changed by a command-line switch; the 90x43
  1621.       character-cell mode's number is always one higher than the 90x29 mode
  1622.       (whose default is mode 08h)
  1623. [16] Stealth64 Video 2001-series BIOS v1.03 reports 76 lines for mode 7Ch,
  1624.       resulting in incorrect scrolling for TTY output (scrolling occurs only
  1625.       after the end of the 76th line, which is not displayed)
  1626. SeeAlso: #0010,#0069,#0101
  1627. Index:    video modes
  1628. Index:    installation check;HERKULES|installation check;HERCULES.COM
  1629. --------V-100070-----------------------------
  1630. INT 10 - VIDEO - Everex Micro Enhancer EGA/Viewpoint VGA - EXTENDED MODE SET
  1631.     AX = 0070h
  1632.     BL = mode (see #0010)
  1633. Desc:    specify a proprietary display mode on the Everex Micro Enhancer or
  1634.       Viewpoint video adapters
  1635. SeeAlso: AH=00h,AX=6F05h,AX=7000h/BX=0004h,AH=FFh"GO32"
  1636.  
  1637. (Table 0010)
  1638. Values for Everex video mode:
  1639.      text/ text pixel    pixel    colors disply scrn monitor    adapter
  1640.      grph resol     box  resolution       pages  addr
  1641.  00h = G    .      .    640x480     16      .    .  multisync  EGA,VGA
  1642.  01h = G    .      .    752x410     16      .    .  multisync  EGA,VGA
  1643.  02h = G    .      .    800x600     16      .    .  multisync  EGA,VGA
  1644.  03h = T  80x34      .      .      .      .    .  multisync  EGA,VGA
  1645.  04h = T  80x60      .      .      .      .    .  multisync  EGA,VGA
  1646.  05h = T  94x29      .      .      .      .    .  multisync  EGA only
  1647.  06h = T  94x51      .      .      .      .    .  multisync  EGA only
  1648.  07h = T 100x43     8x14      .     16      .    .  .          VGA only
  1649.  08h = T 100x75     8x8      .     16      .    .  .          VGA only
  1650.  09h = T  80x44      .      .      .      .    .  EGA          EGA only
  1651.  0Ah = T 132x25      .      .      .      .    .  EGA          EGA,VGA
  1652.  0Bh = T 132x44      .      .      .      .    .  EGA          EGA,VGA
  1653.  0Ch = T 132x25      .      .      .      .    .  CGA          EGA only
  1654.  0Dh = T  80x44      .      .      .      .    .  mono          EGA only
  1655.  0Eh = T 132x25      .      .      .      .    .  mono
  1656.  0Fh = T 132x44      .      .      .      .    .  mono
  1657.  10h =    reserved
  1658.  11h = G    .      .   1280x350      4      .    .  .          EGA only
  1659.  12h = G    .      .   1280x600      4      .    .  .          EGA only
  1660.  13h = G    .      .    640x350    256      .    .  .          EGA,EV673
  1661.  14h = G    .      .    640x400    256      .    .  .
  1662.  15h = G    .      .    512x480    256      .    .  .
  1663.  16h = T  80x30     8x16      .    256      .    .  .          VGA only
  1664.  18h = T 100x27     8x16      .     16      .    .  .          VGA only
  1665.  20h = G    .      .   1024x768     16      .    .  .          Everex 629,678
  1666.         .      .      .      .      .    .  .          Everex EV-673
  1667.  21h = T 160x64     8x16 1280x1024     16      .    .  .          1MB VGA only
  1668.  30h = G    .      .    640x480    256      .    .  .          Everex 629,678
  1669.         .      .      .      .      .    .  .          Everex EV-673
  1670.  31h = G    .      .    800x600    256      .    .  .          Everex 629,678
  1671.         .      .      .      .      .    .  .          Everex EV-673
  1672.  32h = G 128x48     8x16 1024x768    256      .    .  .          1MB VGA only
  1673.  40h = T 132x30     8x16      .     16      .    .  .          VGA only
  1674.  50h = T 132x32     8x16      .    mono      .    .  .          VGA only
  1675.  62h = G  40x25     8x8   320x200    32K      .    .  .          Vwpt TC (EV629)
  1676.  70h = G  64x30     8x16  512x480    32K      .    .  .          Viewpoint TC
  1677.  71h = G  80x30     8x16  640x480    32K      .    .  .          Viewpoint TC
  1678.  76h = G  64x30     8x16  512x480    16M      .    .  .          Viewpoint TC
  1679.  77h = G  80x30     8x16  640x480    16M      .    .  .          Viewpoint TC
  1680. SeeAlso: #0009,#0101
  1681. Index:    video modes;Everex
  1682. --------V-10007E-----------------------------
  1683. INT 10 - VIDEO - Paradise VGA, AT&T VDC600 - SET SPECIAL MODE
  1684.     AX = 007Eh
  1685.     BX = horizontal dimension of the mode desired
  1686.     CX = vertical dimension of the mode desired
  1687.         (both BX/CX in pixels for graphics modes, rows for alpha modes)
  1688.     DX = number of colors of the mode desired (0000h for monochrome modes)
  1689. Return: BH = 7Eh if successful (Paradise VGA)
  1690.     AL = 7Eh if successful (AT&T VDC600)
  1691. Desc:    specify a display mode by resolution rather than mode number
  1692. SeeAlso: AH=00h,AX=0070h,AX=007Fh/BH=00h,AX=6F05h,AH=FFh"GO32"
  1693. Index:    video modes;Paradise|video modes;AT&T
  1694. --------V-10007FBH00-------------------------
  1695. INT 10 - VIDEO - Paradise VGA, AT&T VDC600 - SET VGA OPERATION
  1696.     AX = 007Fh
  1697.     BH = 00h
  1698. Return: AL = 7Fh if successful (AT&T VDC600)
  1699.     BH = status (Paradise/Dell)
  1700.         00h invalid function
  1701.         7Fh successful
  1702. SeeAlso: AX=007Fh/BH=01h,AX=007Fh/BH=02h
  1703. --------V-10007FBH01-------------------------
  1704. INT 10 - VIDEO - Paradise VGA, AT&T VDC600 - SET NON-VGA OPERATION
  1705.     AX = 007Fh
  1706.     BH = 01h
  1707. Return: AL = 7Fh if successful (AT&T VDC600)
  1708.     BH = status (Paradise/Dell)
  1709.         00h invalid function
  1710.         7Fh successful
  1711. Note:    color modes (0,1,2,3,4,5,6) will set non-VGA CGA operation, monochrome
  1712.       mode 7 will set non-VGA MDA/Hercules operation
  1713. SeeAlso: AX=007Fh/BH=00h,AX=007Fh/BH=02h
  1714. --------V-10007FBH02-------------------------
  1715. INT 10 - VIDEO - Paradise VGA, AT&T VDC600 - QUERY MODE STATUS
  1716.     AX = 007Fh
  1717.     BH = 02h
  1718. Return: AL = 7Fh if successful (AT&T VDC600)
  1719.     BH = status (Paradise/Dell)
  1720.         00h invalid function
  1721.         7Fh successful
  1722.     ---if successful---
  1723.     BL = 00h if operating in VGA mode, 01h if non-VGA mode
  1724.     CH = total video RAM size in 64k byte units
  1725.     CL = video RAM used by the current mode
  1726. Note:    under Novell DOS 7 TaskMgr Multitasker, this call always returns 0K
  1727.       video memory in CX
  1728. SeeAlso: AX=007Fh/BH=00h,AX=007Fh/BH=01h
  1729. --------V-10007FBH03-------------------------
  1730. INT 10 - VIDEO - Paradise VGA, AT&T VDC600 - LOCK CURRENT MODE
  1731.     AX = 007Fh
  1732.     BH = 03h
  1733. Return: AL = 7Fh if successful (AT&T VDC600)
  1734.     BH = status (Paradise/Dell)
  1735.         00h invalid function
  1736.         7Fh successful
  1737. Desc:    allows current mode (VGA or non-VGA) to survive re-boot
  1738. SeeAlso: AX=007Eh,AX=007Fh/BH=04h,AX=007Fh/BH=06h,AH=FFh"Oak"
  1739. --------V-10007FBH04-------------------------
  1740. INT 10 - VIDEO - Paradise VGA, AT&T VDC600 - ENTER MDA EMULATION MODE
  1741.     AX = 007Fh
  1742.     BH = 04h
  1743. Return: AL = 7Fh if successful (AT&T VDC600)
  1744.     BH = status (Paradise/Dell)
  1745.         00h invalid function
  1746.         7Fh successful
  1747. SeeAlso: AX=007Eh,AX=007Fh/BH=03h,AX=007Fh/BH=05h,AH=FFh"Oak"
  1748. --------V-10007FBH05-------------------------
  1749. INT 10 - VIDEO - Paradise VGA, AT&T VDC600 - ENTER CGA EMULATION MODE
  1750.     AX = 007Fh
  1751.     BH = 05h
  1752. Return: AL = 7Fh if successful (AT&T VDC600)
  1753.     BH = status (Paradise/Dell)
  1754.         00h invalid function
  1755.         7Fh successful
  1756. SeeAlso: AX=007Eh,AX=007Fh/BH=03h,AX=007Fh/BH=04h,AH=FFh"Oak"
  1757. --------V-10007FBH06-------------------------
  1758. INT 10 - VIDEO - Paradise VGA, AT&T VDC600 - ENTER MONOCHROME VGA MODE
  1759.     AX = 007Fh
  1760.     BH = 06h
  1761. Return: AL = 7Fh if successful (AT&T VDC600)
  1762.     BH = status (Paradise/Dell)
  1763.         00h invalid function
  1764.         7Fh successful
  1765. Note:    this function also switches to video mode 7
  1766. SeeAlso: AX=007Eh,AX=007Fh/BH=03h,AX=007Fh/BH=07h,AH=FFh"Oak"
  1767. --------V-10007FBH07-------------------------
  1768. INT 10 - VIDEO - Paradise VGA, AT&T VDC600 - ENTER COLOR VGA MODE
  1769.     AX = 007Fh
  1770.     BH = 07h
  1771. Return: AL = 7Fh if successful (AT&T VDC600)
  1772.     BH = status (Paradise/Dell)
  1773.         00h invalid function
  1774.         7Fh successful
  1775. Note:    this function also switches to video mode 3
  1776. SeeAlso: AX=007Eh,AX=007Fh/BH=03h,AX=007Fh/BH=06h,AH=FFh"Oak"
  1777. --------V-10007F-----------------------------
  1778. INT 10 - VIDEO - Paradise VGA, AT&T VDC600 - EXTENDED DATA REGISTER ACCESS
  1779.     AX = 007Fh
  1780.     BH = function
  1781.         0Ah,0Bh,0Ch,0Dh,0Eh,0Fh  WRITE PARADISE REGISTERS 0,1,2,3,4,5
  1782.         (port 03CEh indices 0Ah,0Bh,0Ch,0Dh,0Eh,0Fh)
  1783.         BL = value to set in the paradise register
  1784.         1Ah,1Bh,1Ch,1Dh,1Eh,1Fh READ PARADISE REGISTERS 0,1,2,3,4,5
  1785.         (port 03CEh indices 0Ah,0Bh,0Ch,0Dh,0Eh,0Fh)
  1786.         Return: BL = value of the paradise register
  1787.             BH = 7Fh if successful
  1788.         29h-2Fh ??? (Paradise VGA for Dell, 7/24/91)
  1789. Return: AL = 7Fh if successful (AT&T VDC600)
  1790.     BH = status (Paradise/Dell)
  1791.         00h invalid function
  1792.         7Fh successful
  1793. SeeAlso: AX=007Eh,AX=007Fh/BH=03h,AX=007Fh/BH=05h,AH=FFh"Oak"
  1794. --------V-10007FBH60-------------------------
  1795. INT 10 - Paradise VGA - ???
  1796.     AX = 007Fh
  1797.     BH = 60h
  1798.     BL = ??? (00h-13h)
  1799.     ???
  1800. Return: BH = status (00h failed or not supported, 7Fh successful)
  1801.     ???
  1802. Note:    this function is supported by the 5/14/93 ROM for the Dell 486D
  1803. SeeAlso: AX=007Fh/BH=61h
  1804. --------V-10007FBH61-------------------------
  1805. INT 10 - Paradise VGA - ???
  1806.     AX = 007Fh
  1807.     BH = 61h
  1808.     ES:DI -> buffer for list of ??? (see #0011)
  1809. Return: BH = status (00h failed or not supported, 7Fh successful)
  1810.     ???
  1811. Note:    this function is supported by the 5/14/93 ROM for the Dell 486D
  1812. SeeAlso: AX=007Fh/BH=60h
  1813.  
  1814. Format of Paradise VGA list entry:
  1815. Offset    Size    Description    (Table 0011)
  1816.  00h    BYTE    ??? or 00h if end of list
  1817.  01h    BYTE    ???
  1818.  02h    WORD    ???
  1819.  04h    WORD    ???
  1820.  06h    WORD    ???
  1821. --------V-10007FBXA500-----------------------
  1822. INT 10 - Paradise VGA - ???
  1823.     AX = 007Fh
  1824.     BX = A500h
  1825.     ???
  1826. Return: BH = status (00h failed or not supported, 7Fh successful)
  1827.     ???
  1828. Note:    this function is supported by the 5/14/93 ROM for the Dell 486D
  1829. SeeAlso: AX=007Fh/BH=A6h
  1830. --------V-10007FBHA5-------------------------
  1831. INT 10 - Paradise VGA - ???
  1832.     AX = 007Fh
  1833.     BH = A5h
  1834.     BL = ???
  1835.         bits 3-0: ??? (0-4)
  1836.         bits 5,4: ???
  1837.     ???
  1838. Return: BH = status (00h failed or not supported, 7Fh successful)
  1839.     ???
  1840. Note:    this function is supported by the 5/14/93 ROM for the Dell 486D
  1841. --------V-10007FBHA6-------------------------
  1842. INT 10 - Paradise VGA - ???
  1843.     AX = 007Fh
  1844.     BH = A6h
  1845.     ???
  1846. Return: BH = status (00h failed or not supported, 7Fh successful)
  1847.     ???
  1848. Note:    this function is supported by the 5/14/93 ROM for the Dell 486D
  1849. SeeAlso: AX=007Fh/BH=A5h
  1850. --------V-1001-------------------------------
  1851. INT 10 - VIDEO - SET TEXT-MODE CURSOR SHAPE
  1852.     AH = 01h
  1853.     CH = cursor start and options (see #0012)
  1854.     CL = bottom scan line containing cursor (bits 0-4)
  1855. Return: nothing
  1856. Desc:    specify the starting and ending scan lines to be occupied by the
  1857.       hardware cursor in text modes
  1858. Notes:    buggy on EGA systems--BIOS remaps cursor shape in 43 line modes, but
  1859.       returns unmapped cursor shape
  1860.     UltraVision scales size to the current font height by assuming 14-line
  1861.       monochrome and 8-line color fonts; this call is not valid if cursor
  1862.       emulation has been disabled
  1863.     applications which wish to change the cursor by programming the
  1864.       hardware directly on EGA or above should call INT 10/AX=1130h or
  1865.       read 0040h:0085h first to determine the current font height
  1866.     on some adapters, setting the end line greater than the number of lines
  1867.       in the font will result in the cursor extending to the top of the
  1868.       next character cell on the right
  1869. BUG:    AMI 386 BIOS and AST Premier 386 BIOS will lock up the system if AL
  1870.       is not equal to the current video mode
  1871. SeeAlso: AH=03h,AX=CD05h,AH=12h/BL=34h,#3134
  1872.  
  1873. Bitfields for cursor start and options:
  1874. Bit(s)    Description    (Table 0012)
  1875.  7    should be zero
  1876.  6,5    cursor blink
  1877.     (00=normal, 01=invisible, 10=erratic, 11=slow)
  1878.     (00=normal, other=invisible on EGA/VGA)
  1879.  4-0    topmost scan line containing cursor
  1880. --------V-1002-------------------------------
  1881. INT 10 - VIDEO - SET CURSOR POSITION
  1882.     AH = 02h
  1883.     BH = page number
  1884.         0-3 in modes 2&3
  1885.         0-7 in modes 0&1
  1886.         0 in graphics modes
  1887.     DH = row (00h is top)
  1888.     DL = column (00h is left)
  1889. Return: nothing
  1890. SeeAlso: AH=03h,AH=05h,INT 60/DI=030Bh,MEM 0040h:0050h
  1891. --------V-1003-------------------------------
  1892. INT 10 - VIDEO - GET CURSOR POSITION AND SIZE
  1893.     AH = 03h
  1894.     BH = page number
  1895.         0-3 in modes 2&3
  1896.         0-7 in modes 0&1
  1897.         0 in graphics modes
  1898. Return: AX = 0000h (Phoenix BIOS)
  1899.     CH = start scan line
  1900.     CL = end scan line
  1901.     DH = row (00h is top)
  1902.     DL = column (00h is left)
  1903. Notes:    a separate cursor is maintained for each of up to 8 display pages
  1904.     many ROM BIOSes incorrectly return the default size for a color display
  1905.       (start 06h, end 07h) when a monochrome display is attached
  1906. SeeAlso: AH=01h,AH=02h,AH=12h/BL=34h,MEM 0040h:0050h,MEM 0040h:0060h
  1907. --------V-1004-------------------------------
  1908. INT 10 - VIDEO - READ LIGHT PEN POSITION (except VGA)
  1909.     AH = 04h
  1910. Return: AH = light pen trigger flag
  1911.         00h not down/triggered
  1912.         01h down/triggered
  1913.         DH,DL = row,column of character light pen is on
  1914.         CH = pixel row (graphics modes 04h-06h)
  1915.         CX = pixel row (graphics modes with >200 rows)
  1916.         BX = pixel column
  1917. Desc:    determine the current position and status of the light pen (if
  1918.       present)
  1919. Notes:    on a CGA, returned column numbers are always multiples of 2 (320-
  1920.       column modes) or 4 (640-column modes)
  1921.     returned row numbers are only accurate to two lines
  1922. --------V-1004------------------------------------
  1923. INT 10 - HUNTER 16 - GET CURSOR ADDRESS
  1924.     AH = 04h
  1925.     BH = page
  1926. Return: DH = row (0..24)
  1927.     DL = column (0..79)
  1928.     CH = cursor pixel Y-address (0..199)
  1929.     CL = cursor pixel X-address (0..639)
  1930. Notes:    the Husky Hunter 16 is an 8088-based ruggedized laptop.     Other family
  1931.       members are the Husky Hunter, Husky Hunter 16/80, and Husky Hawk.
  1932.     pixel coordinates are for the lower left corner of the character cell
  1933.       containing the cursor
  1934. SeeAlso: AH=60h"HUNTER"
  1935. --------V-1005-------------------------------
  1936. INT 10 - VIDEO -  SELECT ACTIVE DISPLAY PAGE
  1937.     AH = 05h
  1938.     AL = new page number (00h to number of pages - 1) (see #0009)
  1939. Return: nothing
  1940. Desc:    specify which of possibly multiple display pages will be visible
  1941. Note:    to determine whether the requested page actually exists, use AH=0Fh
  1942.       to query the current page after making this call
  1943. SeeAlso: AH=0Fh,AH=43h,AH=45h,MEM 0040h:0062h
  1944. --------V-100500-----------------------------
  1945. INT 10 - VIDEO - Corona/Cordata BIOS v4.10+ - SET GRAPHICS BITMAP BUFFER
  1946.     AX = 0500h
  1947.     BX = segment of buffer
  1948. Return: nothing
  1949. Desc:    set the address of graphics bitmap buffer for video modes 60h and 61h
  1950. SeeAlso: AX=050Fh"Corona"
  1951. --------V-10050F-----------------------------
  1952. INT 10 - VIDEO - Corona/Cordata BIOS v4.10+ - GET GRAPHICS BITMAP BUFFER
  1953.     AX = 050Fh
  1954. Return: DX = segment of graphics bitmap buffer
  1955. Desc:    get the address of graphics bitmap buffer for video modes 60h and 61h
  1956. SeeAlso: AX=0500h"Corona"
  1957. --------V-100580-----------------------------
  1958. INT 10 - VIDEO - PCjr, Tandy 1000 - GET CRT/CPU PAGE REGISTERS
  1959.     AX = 0580h
  1960. Return: BH = CRT page register
  1961.     BL = CPU page register
  1962. Notes:    the CPU page determines which 16K block of the first 128K of physical
  1963.       memory will be mapped at B800h by the hardware
  1964.     the CRT page determines the start address of the memory used by the
  1965.       video controller
  1966. SeeAlso: AH=05h"SET CRT/CPU"
  1967. --------V-1005-------------------------------
  1968. INT 10 - VIDEO - PCjr, Tandy 1000 - SET CRT/CPU PAGE REGISTERS
  1969.     AH = 05h
  1970.     AL = subfunction
  1971.         81h set CPU page register
  1972.         BL = CPU page
  1973.         82h set CRT page register
  1974.         BH = CRT page
  1975.         83h set both CPU and CRT page registers
  1976.         BL = CPU page
  1977.         BH = CRT page
  1978. Return: nothing
  1979. Notes:    the CPU page determines which 16K block of the first 128K of physical
  1980.       memory will be mapped at B800h by the hardware
  1981.     the CRT page determines the start address of the memory used by the
  1982.       video controller
  1983. SeeAlso: AX=0580h
  1984. --------V-1006-------------------------------
  1985. INT 10 - VIDEO - SCROLL UP WINDOW
  1986.     AH = 06h
  1987.     AL = number of lines by which to scroll up (00h = clear entire window)
  1988.     BH = attribute used to write blank lines at bottom of window
  1989.     CH,CL = row,column of window's upper left corner
  1990.     DH,DL = row,column of window's lower right corner
  1991. Return: nothing
  1992. Note:    affects only the currently active page (see AH=05h)
  1993. BUGS:    some implementations (including the original IBM PC) have a bug which
  1994.       destroys BP
  1995.     the Trident TVGA8900CL (BIOS dated 9/8/92) clears DS to 0000h when
  1996.       scrolling in an SVGA mode (800x600 or higher)
  1997. SeeAlso: AH=07h,AH=12h"Tandy 2000",AH=72h,AH=73h,AX=7F07h,INT 50/AX=0014h
  1998. --------V-1007-------------------------------
  1999. INT 10 - VIDEO - SCROLL DOWN WINDOW
  2000.     AH = 07h
  2001.     AL = number of lines by which to scroll down (00h=clear entire window)
  2002.     BH = attribute used to write blank lines at top of window
  2003.     CH,CL = row,column of window's upper left corner
  2004.     DH,DL = row,column of window's lower right corner
  2005. Return: nothing
  2006. Note:    affects only the currently active page (see AH=05h)
  2007. BUGS:    some implementations (including the original IBM PC) have a bug which
  2008.       destroys BP
  2009.     the Trident TVGA8900CL (BIOS dated 9/8/92) clears DS to 0000h when
  2010.       scrolling in an SVGA mode (800x600 or higher)
  2011. SeeAlso: AH=06h,AH=12h"Tandy 2000",AH=72h,AH=73h,INT 50/AX=0014h
  2012. --------V-1008-------------------------------
  2013. INT 10 - VIDEO - READ CHARACTER AND ATTRIBUTE AT CURSOR POSITION
  2014.     AH = 08h
  2015.     BH = page number (00h to number of pages - 1) (see #0009)
  2016. Return: AH = character's attribute (text mode only) (see #0013)
  2017.     AH = character's color (Tandy 2000 graphics mode only)
  2018.     AL = character
  2019. Notes:    for monochrome displays, a foreground of 1 with background 0 is
  2020.       underlined
  2021.     the blink bit may be reprogrammed to enable intense background colors
  2022.       using AX=1003h or by programming the CRT controller
  2023.     the foreground intensity bit (3) can be programmed to switch between
  2024.       character sets A and B on EGA and VGA cards, thus enabling 512
  2025.       simultaneous characters on screen.  In this case the bit's usual
  2026.       function (intensity) is regularly turned off.
  2027.     in graphics modes, only characters drawn with white foreground pixels
  2028.       are matched by the pattern-comparison routine
  2029.     on the Tandy 2000, BH=FFh specifies that the current page should be
  2030.       used
  2031. SeeAlso: AH=09h,AX=1003h,AX=1103h,AH=12h/BL=37h,AX=5001h
  2032.  
  2033. Bitfields for character's display attribute:
  2034. Bit(s)    Description    (Table 0013)
  2035.  7    foreground blink or (alternate) background bright (see also AX=1003h)
  2036.  6-4    background color (see #0014)
  2037.  3    foreground bright or (alternate) alternate character set (see AX=1103h)
  2038.  2-0    foreground color (see #0014)
  2039. SeeAlso: #0025
  2040.  
  2041. (Table 0014)
  2042. Values for character color:
  2043.     Normal        Bright
  2044.  000b    black        dark gray
  2045.  001b    blue        light blue
  2046.  010b    green        light green
  2047.  011b    cyan        light cyan
  2048.  100b    red        light red
  2049.  101b    magenta        light magenta
  2050.  110b    brown        yellow
  2051.  111b    light gray    white
  2052. --------V-1009-------------------------------
  2053. INT 10 - VIDEO - WRITE CHARACTER AND ATTRIBUTE AT CURSOR POSITION
  2054.     AH = 09h
  2055.     AL = character to display
  2056.     BH = page number (00h to number of pages - 1) (see #0009)
  2057.         background color in 256-color graphics modes (ET4000)
  2058.     BL = attribute (text mode) or color (graphics mode)
  2059.         if bit 7 set in <256-color graphics mode, character is XOR'ed
  2060.           onto screen
  2061.     CX = number of times to write character
  2062. Return: nothing
  2063. Notes:    all characters are displayed, including CR, LF, and BS
  2064.     replication count in CX may produce an unpredictable result in graphics
  2065.       modes if it is greater than the number of positions remaining in the
  2066.       current row
  2067. SeeAlso: AH=08h,AH=0Ah,AH=4Bh"GRAFIX",INT 17/AH=60h,INT 1F"SYSTEM DATA"
  2068. SeeAlso: INT 43"VIDEO DATA",INT 44"VIDEO DATA"
  2069. --------V-100A-------------------------------
  2070. INT 10 - VIDEO - WRITE CHARACTER ONLY AT CURSOR POSITION
  2071.     AH = 0Ah
  2072.     AL = character to display
  2073.     BH = page number (00h to number of pages - 1) (see #0009)
  2074.         background color in 256-color graphics modes (ET4000)
  2075.     BL = attribute (PCjr, Tandy 1000 only) or color (graphics mode)
  2076.         if bit 7 set in <256-color graphics mode, character is XOR'ed
  2077.           onto screen
  2078.     CX = number of times to write character
  2079. Return: nothing
  2080. Notes:    all characters are displayed, including CR, LF, and BS
  2081.     replication count in CX may produce an unpredictable result in graphics
  2082.       modes if it is greater than the number of positions remaining in the
  2083.       current row
  2084. SeeAlso: AH=08h,AH=09h,AH=11h"Tandy 2000",AH=4Bh,INT 17/AH=60h
  2085. SeeAlso: INT 1F"SYSTEM DATA",INT 43"VIDEO DATA",INT 44"VIDEO DATA"
  2086. --------V-100B--BH00-------------------------
  2087. INT 10 - VIDEO - SET BACKGROUND/BORDER COLOR
  2088.     AH = 0Bh
  2089.     BH = 00h
  2090.     BL = background/border color (border only in text modes)
  2091. Return: nothing
  2092. SeeAlso: AH=0Bh/BH=01h
  2093. --------V-100B--BH01-------------------------
  2094. INT 10 - VIDEO - SET PALETTE
  2095.     AH = 0Bh
  2096.     BH = 01h
  2097.     BL = palette ID
  2098.         00h background, green, red, and brown/yellow
  2099.         01h background, cyan, magenta, and white
  2100. Return: nothing
  2101. Note:    this call was only valid in 320x200 graphics on the CGA, but newer
  2102.       cards support it in many or all graphics modes
  2103. SeeAlso: AH=0Bh/BH=00h,MEM 0040h:0066h
  2104. --------V-100B--BH02-------------------------
  2105. INT 10 - Tandy 2000 - VIDEO - SET PALETTE ENTRY
  2106.     AH = 0Bh
  2107.     BH = 02h
  2108.     BL = palette entry number
  2109.     AL = new color value for palette entry
  2110. Return: nothing
  2111. Note:    this interrupt is identical to INT 52 for Tandy 2000
  2112. SeeAlso: INT 10/AH=00h,INT 10/AH=0Bh/BH=01h,INT 52"Tandy 2000"
  2113. --------V-100C-------------------------------
  2114. INT 10 - VIDEO - WRITE GRAPHICS PIXEL
  2115.     AH = 0Ch
  2116.     BH = page number
  2117.     AL = pixel color
  2118.         if bit 7 set, value is XOR'ed onto screen except in 256-color modes
  2119.     CX = column
  2120.     DX = row
  2121. Return: nothing
  2122. Desc:    set a single pixel on the display in graphics modes
  2123. Notes:    valid only in graphics modes
  2124.     BH is ignored if the current video mode supports only one page
  2125. SeeAlso: AH=0Dh,AH=46h
  2126. --------V-100D-------------------------------
  2127. INT 10 - VIDEO - READ GRAPHICS PIXEL
  2128.     AH = 0Dh
  2129.     BH = page number
  2130.     CX = column
  2131.     DX = row
  2132. Return: AL = pixel color
  2133. Desc:    determine the current color of the specified pixel in grahics modes
  2134. Notes:    valid only in graphics modes
  2135.     BH is ignored if the current video mode supports only one page
  2136. SeeAlso: AH=0Ch,AH=47h
  2137. --------V-100E-------------------------------
  2138. INT 10 - VIDEO - TELETYPE OUTPUT
  2139.     AH = 0Eh
  2140.     AL = character to write
  2141.     BH = page number
  2142.     BL = foreground color (graphics modes only)
  2143. Return: nothing
  2144. Desc:    display a character on the screen, advancing the cursor and scrolling
  2145.       the screen as necessary
  2146. Notes:    characters 07h (BEL), 08h (BS), 0Ah (LF), and 0Dh (CR) are interpreted
  2147.       and do the expected things
  2148.     IBM PC ROMs dated 4/24/81 and 10/19/81 require that BH be the same as
  2149.       the current active page
  2150. SeeAlso: AH=02h,AH=0Ah
  2151. --------b-100E--CXABCD-----------------------
  2152. INT 10 - V20-XT-BIOS - TELETYPE OUTPUT WITH ATTRIBUTE
  2153.     AH = 0Eh
  2154.     CX = ABCDh
  2155.     BP = ABCDh
  2156.     AL = character to write
  2157.     BH = page number
  2158.     BL = foreground color (text modes as well as graphics modes)
  2159. Return: nothing
  2160. Program: V20-XT-BIOS is a ROM BIOS replacement with extensions by Peter
  2161.       Koehlmann / c't magazine
  2162. Desc:    display a character on the screen, advancing the cursor and scrolling
  2163.       the screen as necessary
  2164. Notes:    characters 07h (BEL), 08h (BS), 0Ah (LF), and 0Dh (CR) are interpreted
  2165.       and do the expected things
  2166. SeeAlso: INT 15/AH=84h"V20-XT-BIOS"
  2167. --------V-100F-------------------------------
  2168. INT 10 - VIDEO - GET CURRENT VIDEO MODE
  2169.     AH = 0Fh
  2170. Return: AH = number of character columns
  2171.     AL = display mode (see #0009 at AH=00h)
  2172.     BH = active page (see AH=05h)
  2173. Notes:    if mode was set with bit 7 set ("no blanking"), the returned mode will
  2174.       also have bit 7 set
  2175.     EGA, VGA, and UltraVision return either AL=03h (color) or AL=07h
  2176.       (monochrome) in all extended-row text modes
  2177.     HP 200LX returns AL=07h (monochrome) if mode was set to AL=21h
  2178.       and always 80 resp. 40 columns in all text modes regardless of
  2179.       current zoom setting (see AH=D0h)
  2180.     when using a Hercules Graphics Card, additional checks are necessary:
  2181.         mode 05h: if WORD 0040h:0063h is 03B4h, may be in graphics page 1
  2182.           (as set by DOSSHELL and other Microsoft software)
  2183.         mode 06h: if WORD 0040h:0063h is 03B4h, may be in graphics page 0
  2184.           (as set by DOSSHELL and other Microsoft software)
  2185.         mode 07h: if BYTE 0040h:0065h bit 1 is set, Hercules card is in
  2186.           graphics mode, with bit 7 indicating the page (mode set by
  2187.           Hercules driver for Borland Turbo C)
  2188.     the Tandy 2000 BIOS is only documented as returning AL, not AH or BH
  2189. SeeAlso: AH=00h,AH=05h,AX=10F2h,AX=1130h,AX=CD04h
  2190. --------V-100F56BX4756-----------------------
  2191. INT 10 - VUIMAGE DISPLAY DRIVER (v2.20 and below)
  2192.     AX = 0F56h
  2193.     BX = 4756h
  2194.     CX = 4944h
  2195.     DL = function
  2196.         01h installation check
  2197.         Return: AX = 5649h
  2198.             BX = 4443h
  2199.             CX = 5647h
  2200.             DH = 01h
  2201.         02h get first video mode's parameters
  2202.         Return: AX = BIOS mode number
  2203.             BX = width in pixels
  2204.             CX = height in pixels
  2205.             DX = number of colors
  2206.         03h get next video mode's parameters
  2207.         Return: as for DL=02h
  2208.         04h display line???
  2209.         ES:DI -> record (see #0015)
  2210.         ???
  2211.         Return: ???
  2212. Program: VUIMAGE is a shareware GIF/TIFF image viewer by Offe Enterprises
  2213. Note:    the use of TSR display drivers was discontinued after v2.20
  2214. Index:    installation check;VUIMAGE display driver
  2215.  
  2216. Format of record for VUIMAGE Function 04h:
  2217. Offset    Size    Description    (Table 0015)
  2218.  00h    WORD    row number
  2219.  02h    WORD    starting column???
  2220.  04h    WORD    ending column???
  2221.     ???
  2222. --------V-100F--SIF123-----------------------
  2223. INT 10 - FRIEZE v7.41+ - INSTALLATION CHECK
  2224.     AH = 0Fh
  2225.     SI = F123h
  2226.     DI = 321Fh
  2227. Return: AH = number of character columns
  2228.     AL = display mode (see #0009 at AH=00h)
  2229.     BH = active page (see AH=05h)
  2230.     SI = DI = F345h if installed
  2231. Notes:    if mode was set with bit 7 set ("no blanking"), the returned mode will
  2232.       also have bit 7 set
  2233.     EGA, VGA, and UltraVision return either AL=03h (color) or AL=07h
  2234.       (monochrome) in all extended-row text modes
  2235. SeeAlso: AH=0Fh"VIDEO",AH=4Bh"FRIEZE"
  2236. --------V-1010-------------------------------
  2237. INT 10 - BIOS Window Extension v1.1 - SET WINDOW COORDINATES
  2238.     AH = 10h
  2239.     CH,CL = row,column of upper left corner of window
  2240.     DH,DL = row,column of lower right corner of window
  2241. Return: AL = status
  2242.         00h successful
  2243.         01h failed
  2244.     AH destroyed
  2245. Program: BWE is a TSR by John J. Seal published in May 1986 Dr. Dobb's Journal
  2246. Note:    when a window has been set, all output via AH=0Eh is restricted to
  2247.       the specified window
  2248. SeeAlso: AH=11h"Window",AH=12h"Window"
  2249. --------V-1010-------------------------------
  2250. INT 10 - VIDEO - Eagle PC2 BIOS Rev. C - SET SCROLL SPEED
  2251.     AH = 10h
  2252.     AL = speed
  2253.         00h fast
  2254.         01h slow (scrolling only moves characters during vertical retrace)
  2255. Return: AH = previous speed
  2256. --------V-1010-------------------------------
  2257. INT 10 - Tandy 2000 - VIDEO - GET/SET CHARACTER FONTS
  2258.     AH = 10h
  2259.     AL = control value
  2260.         bit 0: set character set instead of reading it
  2261.         bit 1: high 128 characters instead of low 128 characters
  2262.     ES:BX -> new character set if AL bit 0 set
  2263. Return: ES:BX -> current character set if AL bit 0 clear on entry
  2264. Notes:    this interrupt is identical to INT 52 on Tandy 2000
  2265.     the character set consists of 16 bytes for each of the 128 characters,
  2266.       where each of the 16 bytes describes the pixels in one scan line,
  2267.       most significant bit leftmost
  2268. SeeAlso: AH=00h,AH=0Bh/BH=02h,AH=11h"Tandy 2000",AH=12h"Tandy 2000"
  2269. SeeAlso: INT 52"Tandy 2000"
  2270. --------V-101000-----------------------------
  2271. INT 10 - VIDEO - SET SINGLE PALETTE REGISTER (PCjr,Tandy,EGA,MCGA,VGA)
  2272.     AX = 1000h
  2273.     BL = palette register number (00h-0Fh)
  2274.        = attribute register number (undocumented) (see #0016)
  2275.     BH = color or attribute register value
  2276. Return: nothing
  2277. Notes:    on MCGA, only BX = 0712h is supported
  2278.     under UltraVision, the palette locking status (see AX=CD01h)
  2279.       determines the outcome
  2280. SeeAlso: AX=1002h,AX=1007h,AX=CD01h
  2281.  
  2282. (Table 0016)
  2283. Values for attribute register number:
  2284.  10h    attribute mode control register (should let BIOS control this)
  2285.  11h    overscan color register (see also AX=1001h)
  2286.  12h    color plane enable register (bits 3-0 enable corresponding
  2287.       text attribute bit)
  2288.  13h    horizontal PEL panning register
  2289.  14h    color select register
  2290. --------V-101001-----------------------------
  2291. INT 10 - VIDEO - SET BORDER (OVERSCAN) COLOR (PCjr,Tandy,EGA,VGA)
  2292.     AX = 1001h
  2293.     BH = border color (00h-3Fh)
  2294. Return: nothing
  2295. BUG:    the original IBM VGA BIOS incorrectly updates the parameter save area
  2296.       and places the border color at offset 11h of the palette table
  2297.       rather than offset 10h
  2298. Note:    under UltraVision, the palette locking status (see AX=CD01h)
  2299.       determines the outcome
  2300. SeeAlso: AX=1002h,AX=1008h,AX=CD01h
  2301. --------V-101002-----------------------------
  2302. INT 10 - VIDEO - SET ALL PALETTE REGISTERS (PCjr,Tandy,EGA,VGA)
  2303.     AX = 1002h
  2304.     ES:DX -> palette register list (see #0017)
  2305.     BH = 00h to avoid problems on some adapters
  2306. Return: nothing
  2307. Note:    under UltraVision, the palette locking status (see AX=CD01h)
  2308.       determines the outcome
  2309. SeeAlso: AX=1000h,AX=1001h,AX=1009h,AX=CD01h
  2310.  
  2311. Format of palette register list:
  2312. Offset    Size    Description    (Table 0017)
  2313.  00h 16 BYTEs    colors for palette registers 00h through 0Fh
  2314.  10h    BYTE    border color
  2315. SeeAlso: #0365
  2316. --------V-101003-----------------------------
  2317. INT 10 - VIDEO - TOGGLE INTENSITY/BLINKING BIT (Jr, PS, TANDY 1000, EGA, VGA)
  2318.     AX = 1003h
  2319.     BL = new state
  2320.         00h background intensity enabled
  2321.         01h blink enabled
  2322.     BH = 00h to avoid problems on some adapters
  2323. Return: nothing
  2324. Notes:    although there is no function to get the current status on adapters
  2325.       prior to the VGA, bit 5 of 0040h:0065h indicates the state; on the
  2326.       VGA, use AH=1Bh and check offset 2Dh of the returned data (see #0037)
  2327.     when configured for a monochrome display, the Boca Research Multi-EGA
  2328.       with ROM v M1.1 Type D has its screen disrupted if BH is not clear
  2329.     this call is reported to be "Get Cursor Position" on the Tandy
  2330.       1000SL/TL
  2331. SeeAlso: AH=08h,AH=1Bh
  2332. --------V-101007-----------------------------
  2333. INT 10 - VIDEO - GET INDIVIDUAL PALETTE REGISTER (VGA,UltraVision v2+)
  2334.     AX = 1007h
  2335.     BL = palette or attribute (undoc) register number (see #0016)
  2336. Return: BH = palette or attribute register value
  2337. Note:    UltraVision v2+ supports this function even on color EGA systems in
  2338.       video modes 00h-03h, 10h, and 12h; direct programming of the palette
  2339.       registers will cause incorrect results because the EGA registers are
  2340.       write-only.  To guard against older versions or unsupported video
  2341.       modes, programs which expect to use this function on EGA systems
  2342.       should set BH to FFh on entry.
  2343. SeeAlso: AX=1000h,AX=1009h
  2344. --------V-101008-----------------------------
  2345. INT 10 - VIDEO - READ OVERSCAN (BORDER COLOR) REGISTER (VGA,UltraVision v2+)
  2346.     AX = 1008h
  2347. Return: BH = border color (00h-3Fh)
  2348. Note:    (see AX=1007h)
  2349. SeeAlso: AX=1001h
  2350. --------V-101009-----------------------------
  2351. INT 10 - VIDEO - READ ALL PALETTE REGISTERS AND OVERSCAN REGISTER (VGA)
  2352.     AX = 1009h
  2353.     ES:DX -> 17-byte buffer for palette register list (see #0017)
  2354. Return: nothing
  2355. Note:    UltraVision v2+ supports this function even on color EGA systems in
  2356.       video modes 00h-03h, 10h, and 12h; direct programming of the palette
  2357.       registers will cause incorrect results because the EGA registers are
  2358.       write-only.  To guard against older versions or unsupported video
  2359.       modes, programs which expect to use this function on EGA systems
  2360.       should set the ES:DX buffer to FFh before calling.
  2361. SeeAlso: AX=1002h,AX=1007h,AX=CD02h
  2362. --------V-101010-----------------------------
  2363. INT 10 - VIDEO - SET INDIVIDUAL DAC REGISTER (VGA/MCGA)
  2364.     AX = 1010h
  2365.     BX = register number
  2366.     CH = new value for green (0-63)
  2367.     CL = new value for blue (0-63)
  2368.     DH = new value for red (0-63)
  2369. Return: nothing
  2370. SeeAlso: AX=1012h,AX=1015h
  2371. --------V-101012-----------------------------
  2372. INT 10 - VIDEO - SET BLOCK OF DAC REGISTERS (VGA/MCGA)
  2373.     AX = 1012h
  2374.     BX = starting color register
  2375.     CX = number of registers to set
  2376.     ES:DX -> table of 3*CX bytes where each 3 byte group represents one
  2377.          byte each of red, green and blue (0-63)
  2378. Return: nothing
  2379. SeeAlso: AX=1010h,AX=1017h,INT 62/AX=00A5h
  2380. --------V-101013-----------------------------
  2381. INT 10 - VIDEO - SELECT VIDEO DAC COLOR PAGE (VGA)
  2382.     AX = 1013h
  2383.     BL = subfunction
  2384.         00h select paging mode
  2385.         BH = 00h select 4 blocks of 64
  2386.         BH = 01h select 16 blocks of 16
  2387.         01h select page
  2388.         BH = page number (00h to 03h) or (00h to 0Fh)
  2389. Return: nothing
  2390. Note:    this function is not valid in mode 13h
  2391. SeeAlso: AX=101Ah
  2392. --------V-101015-----------------------------
  2393. INT 10 - VIDEO - READ INDIVIDUAL DAC REGISTER (VGA/MCGA)
  2394.     AX = 1015h
  2395.     BL = palette register number
  2396. Return: DH = red value
  2397.     CH = green value
  2398.     CL = blue value
  2399.     AX destroyed by some BIOSes
  2400.           (e.g. Tseng ET4000 BIOS v8.00n always returns AX=00C9h)
  2401. SeeAlso: AX=1010h,AX=1017h
  2402. --------V-101017-----------------------------
  2403. INT 10 - VIDEO - READ BLOCK OF DAC REGISTERS (VGA/MCGA)
  2404.     AX = 1017h
  2405.     BX = starting palette register
  2406.     CX = number of palette registers to read
  2407.     ES:DX -> buffer (3 * CX bytes in size) (see also AX=1012h)
  2408. Return: buffer filled with CX red, green and blue triples
  2409. SeeAlso: AX=1012h,AX=1015h,INT 62/AX=00A4h
  2410. --------V-101018-----------------------------
  2411. INT 10 U - VIDEO - SET PEL MASK (VGA/MCGA)
  2412.     AX = 1018h
  2413.     BL = new PEL value
  2414. Return: nothing
  2415. SeeAlso: AX=1019h
  2416. --------V-101019-----------------------------
  2417. INT 10 U - VIDEO - READ PEL MASK (VGA/MCGA)
  2418.     AX = 1019h
  2419. Return: BL = value read
  2420. SeeAlso: AX=1018h
  2421. --------V-10101A-----------------------------
  2422. INT 10 - VIDEO - GET VIDEO DAC COLOR-PAGE STATE (VGA)
  2423.     AX = 101Ah
  2424. Return: BL = paging mode
  2425.         00h four pages of 64
  2426.         01h sixteen pages of 16
  2427.     BH = current page
  2428. SeeAlso: AX=1013h
  2429. --------V-10101B-----------------------------
  2430. INT 10 - VIDEO - PERFORM GRAY-SCALE SUMMING (VGA/MCGA)
  2431.     AX = 101Bh
  2432.     BX = starting palette register
  2433.     CX = number of registers to convert
  2434. Return: nothing
  2435. Desc:    convert the RGB values of one or more palette registers such that the
  2436.       resulting values are grays with the same intensities as the original
  2437.       colors
  2438. SeeAlso: AH=12h/BL=33h
  2439. --------V-1010E0-----------------------------
  2440. INT 10 - VIDEO - Diamond Speedstar 24 - SET 24-BIT GRAPHICS MODE
  2441.     AX = 10E0h
  2442.     BL = video mode (see also #0009 at AH=00h)
  2443.         2Eh = 640x480
  2444. Return: ???
  2445. SeeAlso: AH=00h,AX=10F0h
  2446. --------V-1010F0-----------------------------
  2447. INT 10 - VIDEO - Tseng ET-4000 BIOS - SET HiColor GRAPHICS MODE
  2448.     AX = 10F0h
  2449.     BL = video mode (see also #0009 at AH=00h)
  2450.         13h = 320x200x32K
  2451.         2Dh = 640x350x32K
  2452.         2Eh = 640x480x32K
  2453.         2Fh = 640x400x32K
  2454.         30h = 800x600x32K
  2455.         3Eh = 640x480x16M (Genoa 7900)
  2456.         FFh Tseng 24-bit color mode
  2457.         BH = mode
  2458.             2Dh = 640x480
  2459.             2Eh = 640x480x16M
  2460.             2Fh = 640x400
  2461.             30h = 800x600
  2462.             38h = 1024x768??? (Tseng ET4000/W32i)
  2463. Return: AL = 10h if supported
  2464.     AH = status
  2465.         00h if successful
  2466.         other on error
  2467. Desc:    switch the display into a graphics mode with 15 or more bits per pixel
  2468. Note:    the Tseng HiColor BIOS extensions are supported by:
  2469.       Diamond Computer Systems    SpeedStar HiColor VGA
  2470.       Everex Systems        HC VGA
  2471.       Focus Information Systems    2theMax 4000
  2472.       Cardinal Technologies        VGA732
  2473.       Orchid ProDesigner IIs    Genoa 7900
  2474. SeeAlso: AH=00h,AX=10E0h,AX=10F1h,AX=10F2h
  2475. Index:    video modes;Tseng Hi-Color
  2476. --------V-1010F1-----------------------------
  2477. INT 10 - VIDEO - Tseng ET-4000 BIOS - GET DAC TYPE
  2478.     AX = 10F1h
  2479. Return: AL = 10h if supported
  2480.     BL = type of digital/analog converter (see #0018)
  2481. Desc:    determine which type of digital-to-analog converter is installed on the
  2482.       display board
  2483. SeeAlso: AX=10F0h,AX=10F2h
  2484.  
  2485. (Table 0018)
  2486. Values for type of DAC:
  2487.  00h normal VGA DAC
  2488.  01h Sierra SC1148x HiColor DAC
  2489.  ---Diamond SpeedStar 24---
  2490.  02h new Sierra SS24 DAC (24-bit)
  2491.  ---generic Tseng BIOS v8+ ---
  2492.  02h Sierra Mark2 (15-bit) or Mark3 (15/16-bit) DAC
  2493.  03h ATT20c490/1/2 (15/16/24-bit)
  2494.  04h AcuMos ADAC1 (15/16/24-bit)
  2495.  05h unknown 15/16/24-bit DAC
  2496.  06h Cirrus Internal 15/16/24-bit (CL-GD54xx series adapters)
  2497.  07h Diamond SS2410 (15/24-bit)
  2498.  08h unknown 15/16/24-bit DAC
  2499.  09h unknown 15/16/24-bit DAC
  2500.  else other HiColor DAC
  2501. --------V-1010F2-----------------------------
  2502. INT 10 u - VIDEO - Tseng ET-4000 BIOS - CHECK IF HiColor MODE/SET HiColor MODE
  2503.     AX = 10F2h
  2504.     BL = function
  2505.         00h get current HiColor mode
  2506.         01h set 15-bit HiColor mode
  2507.         02h set 16-bit HiColor mode
  2508. Return: AX = 0010h if supported
  2509.         BL = video mode type
  2510.         00h not in HiColor mode
  2511.         01h 15-bit RGB mode
  2512.         02h 16-bit RGB mode
  2513.         03h 24-bit RGB mode
  2514. Desc:    determine whether the display is in a graphics mode with 15 or more
  2515.       bits per pixel color resolution
  2516. Note:    set (BL=01h/02h) only works if already in a HiColor mode
  2517. SeeAlso: AH=0Fh,AX=10F0h,AX=10F1h
  2518. --------V-1011-------------------------------
  2519. INT 10 - BIOS Window Extension v1.1 - GET WINDOW COORDINATES
  2520.     AH = 11h
  2521. Return: CH,CL = row,column of upper left corner
  2522.     DH,DL = row,column of lower right corner
  2523. Desc:    determine the portion of the display to which output is restricted
  2524. Program: BWE is a TSR by John J. Seal published in May 1986 Dr. Dobb's Journal
  2525. SeeAlso: AH=10h"Window",AH=12h"Window"
  2526. --------V-1011-------------------------------
  2527. INT 10 - Tandy 2000 - VIDEO - WRITE ATTRIBUTE ONLY
  2528.     AH = 11h
  2529.     BL = new character attribute (text modes) or color (graphics)
  2530.     CX = number of times to write attribute
  2531. Return: nothing
  2532. Note:    this interrupt is identical to INT 52 on Tandy 2000
  2533. SeeAlso: AH=0Ah,AH=0Bh/BH=02h,AH=11h"Tandy 2000",AH=12h"Tandy 2000"
  2534. SeeAlso: INT 52"Tandy 2000"
  2535. --------V-101100-----------------------------
  2536. INT 10 - VIDEO - TEXT-MODE CHARGEN - LOAD USER-SPECIFIED PATTERNS (PS,EGA,VGA)
  2537.     AX = 1100h
  2538.     ES:BP -> user table
  2539.     CX = count of patterns to store
  2540.     DX = character offset into map 2 block
  2541.     BL = block to load in map 2
  2542.     BH = number of bytes per character pattern
  2543. Return: nothing
  2544. Notes:    This function will cause a mode set, completely resetting
  2545.       the video environment, but without clearing the video buffer
  2546.     the current block specifiers may be determined with INT 10/AH=1Bh,
  2547.       looking at offsets 2Bh and 2Ch of the returned data (VGA only)
  2548.       (see AH=1Bh,#0037)
  2549. SeeAlso: AX=1101h,AX=1102h,AX=1103h,AX=1104h,AX=1110h,AH=1Bh,AX=CD10h
  2550. --------V-101101-----------------------------
  2551. INT 10 - VIDEO - TEXT-MODE CHARGEN - LOAD ROM MONOCHROME PATTERNS (PS,EGA,VGA)
  2552.     AX = 1101h
  2553.     BL = block to load
  2554. Return: nothing
  2555. Notes:    (see also AX=1100h)
  2556.     This function will cause a mode set, completely resetting
  2557.       the video environment, but without clearing the video buffer
  2558.     the "monochrome" patters are 8x14 pixels in size
  2559. SeeAlso: AX=1100h,AX=1102h,AX=1103h,AX=1104h,AX=1111h,AH=1Bh,AX=CD10h
  2560. --------V-101102-----------------------------
  2561. INT 10 - VIDEO - TEXT-MODE CHARGEN - LOAD ROM 8x8 DBL-DOT PATTERNS (PS,EGA,VGA)
  2562.     AX = 1102h
  2563.     BL = block to load
  2564. Return: nothing
  2565. Notes:    (see AX=1100h)
  2566. SeeAlso: AX=1100h,AX=1101h,AX=1103h,AX=1104h,AX=1112h,AH=1Bh,AX=CD10h
  2567. --------V-101103-----------------------------
  2568. INT 10 - VIDEO - TEXT-MODE CHARGEN - SET BLOCK SPECIFIER (PS,EGA,VGA)
  2569.     AX = 1103h
  2570.     BL = block specifier (see #0019)
  2571. Return: nothing
  2572. Notes:    (see also AX=1110h)
  2573.     This function allows dual character sets to appear on screen
  2574.       simultaneously
  2575. SeeAlso: AX=1100h,AX=1101h,AX=1102h,AX=1104h,AH=1Bh,AX=CD10h
  2576.  
  2577. Bitfields for block specifier:
  2578. Bit(s)    Description    (Table 0019)
  2579. ---EGA/MCGA---
  2580.  0,1    block selected by characters with attribute bit 3 clear
  2581.  2,3    block selected by characters with attribute bit 3 set
  2582. ---VGA---
  2583.  0,1,4    block selected by characters with attribute bit 3 clear
  2584.  2,3,5    block selected by characters with attribute bit 3 set
  2585. --------V-101104-----------------------------
  2586. INT 10 - VIDEO - TEXT-MODE CHARGEN - LOAD ROM 8x16 CHARACTER SET (VGA)
  2587.     AX = 1104h
  2588.     BL = block to load
  2589. Return: nothing
  2590. Notes:    (see AX=1100h)
  2591. SeeAlso: AX=1100h,AX=1101h,AX=1102h,AX=1103h,AX=1114h,AH=1Bh,AX=CD10h
  2592. --------V-1011-------------------------------
  2593. INT 10 - VIDEO - Realtek RTVGA - TEXT-MODE CHARACTER GENERATOR FUNCTIONS
  2594.     AH = 11h
  2595.     AL = 07h load user-specified paterns and recalculate mode parms
  2596.          parameters are the same as for AX=1110h
  2597.     AL = 08h load monochrome patterns (8x14) and recalculate mode parms
  2598.          parameters are the same as for AX=1111h
  2599.     AL = 09h load ROM 8 by 8 double-dot patterns and recalculate mode parms
  2600.          parameters are the same as for AX=1112h
  2601.     AL = 0Bh load ROM 8x16 character set (VGA) and recalculate mode parms
  2602.          parameters are the same as for AX=1114h
  2603. Note:    these functions should only be called under the same conditions as
  2604.       AL=1xh (see AX=1110h"EGA")
  2605. SeeAlso: AX=1100h,AX=1110h"CHARGEN",AX=1110h"Realtek"
  2606. --------V-10110F-----------------------------
  2607. INT 10 - VIDEO - Realtek RTVGA - SET USER 8x8 GRAPHICS CHARACTERS
  2608.     AX = 110Fh
  2609.     ES:BP -> user table for INT 1F
  2610. Return: nothing
  2611. Note:    this function is meant to be called immediately after a mode set;
  2612.       results are unpredictable at other times
  2613. SeeAlso: AX=1110h"Realtek",AX=1111h"Realtek",AX=1112h"Realtek",AX=1120h
  2614. --------V-101110-----------------------------
  2615. INT 10 - VIDEO - TEXT-MODE CHARGEN - LOAD USER-SPECIFIED PATTERNS (PS,EGA,VGA)
  2616.     AX = 1110h
  2617.     ES:BP -> user table
  2618.     CX = count of patterns to store
  2619.     DX = character offset into map 2 block
  2620.     BL = block to load in map 2
  2621.     BH = number of bytes per character pattern
  2622. Return: nothing
  2623. Notes:    This function will cause a mode set, completely resetting
  2624.       the video environment, but without clearing the video buffer
  2625.     This function is designed to be called immediately after a mode set,
  2626.       it is equivalent to AX=110xh except that:
  2627.           Page 0 must be active.
  2628.           Bytes/character is recalculated.
  2629.           Max character rows is recalculated.
  2630.           CRT buffer length is recalculated.
  2631.           CRTC registers are reprogrammed as follows:
  2632.              R09 = bytes/char-1 ; max scan line (mode 7 only)
  2633.              R0A = bytes/char-2 ; cursor start
  2634.              R0B = 0        ; cursor end
  2635.              R12 = ((rows+1)*(bytes/char))-1 ; vertical display end
  2636.              R14 = bytes/char    ; underline loc
  2637.                (*** BUG: should be 1 less ***)
  2638.     the current block specifiers may be determined with INT 10/AH=1Bh,
  2639.       looking at offsets 2Bh and 2Ch of the returned data (VGA only)
  2640.       (see AH=1Bh,#0037)
  2641. SeeAlso: AX=1100h,AX=1111h,AX=1112h,AX=1114h,AH=1Bh,AX=CD10h
  2642. --------V-101110-----------------------------
  2643. INT 10 - VIDEO - Realtek RTVGA - SET USER GRAPHICS CHARACTERS
  2644.     AX = 1110h
  2645.     ES:BP -> user table
  2646.     CX = bytes per character
  2647.     BL = row specifier
  2648.         00h user set
  2649.         DL = number of rows
  2650.         01h 14 rows
  2651.         02h 25 rows
  2652.         03h 43 rows
  2653. Return: nothing
  2654. Note:    this function is meant to be called immediately after a mode set;
  2655.       results are unpredictable at other times
  2656. SeeAlso: AX=110Fh"Realtek",AX=1112h"Realtek",AX=1121h
  2657. --------V-101111-----------------------------
  2658. INT 10 - VIDEO - TEXT-MODE CHARGEN - LOAD ROM MONOCHROME PATTERNS (PS,EGA,VGA)
  2659.     AX = 1111h
  2660.     BL = block to load
  2661. Return: nothing
  2662. Notes:    (see AX=1110h)
  2663.     the "monochrome" patters are 8x14 pixels in size
  2664. SeeAlso: AX=1101h,AX=1110h,AX=1112h,AX=1114h,AH=1Bh,AX=CD10h
  2665. --------V-101111-----------------------------
  2666. INT 10 - VIDEO - Realtek RTVGA - SET ROM 8x14 GRAPHICS CHARACTERS
  2667.     AX = 1111h
  2668.     BL = row specifier (see AX=1121h)
  2669. Return: nothing
  2670. Note:    this function is meant to be called immediately after a mode set;
  2671.       results are unpredictable at other times
  2672. SeeAlso: AX=110Fh"Realtek",AX=1110h"Realtek",AX=1122h
  2673. --------V-101112-----------------------------
  2674. INT 10 - VIDEO - TEXT-MODE CHARGEN - LOAD ROM 8x8 DBL-DOT PATTERNS (PS,EGA,VGA)
  2675.     AX = 1112h
  2676.     BL = block to load
  2677. Return: nothing
  2678. Notes:    (see AX=1110h)
  2679. SeeAlso: AX=1103h,AX=1110h,AX=1111h,AX=1114h,AH=1Bh,AX=CD10h
  2680. --------V-101112-----------------------------
  2681. INT 10 - VIDEO - Realtek RTVGA - SET ROM 8x8 DOUBLE-DOT CHARACTERS
  2682.     AX = 1112h
  2683.     BL = row specifier (see AX=1121h)
  2684. Return: nothing
  2685. Note:    this function is meant to be called immediately after a mode set;
  2686.       results are unpredictable at other times
  2687. SeeAlso: AX=110Fh"Realtek",AX=1110h"Realtek",AX=1111h"Realtek",AX=1123h
  2688. --------V-101114-----------------------------
  2689. INT 10 - VIDEO - TEXT-MODE CHARGEN - LOAD ROM 8x16 CHARACTER SET (VGA)
  2690.     AX = 1114h
  2691.     BL = block to load
  2692. Return: nothing
  2693. Notes:    (see AX=1110h)
  2694. SeeAlso: AX=1104h,AX=1110h,AX=1111h,AX=1112h,AH=1Bh,AX=CD10h
  2695. --------V-101120-----------------------------
  2696. INT 10 - VIDEO - GRAPH-MODE CHARGEN - SET USER 8x8 GRAPHICS CHARS (PS,EGA,VGA)
  2697.     AX = 1120h
  2698.     ES:BP -> user table for INT 1F
  2699. Return: nothing
  2700. Note:    this function is meant to be called immediately after a mode set;
  2701.       results are unpredictable at other times
  2702. SeeAlso: AX=1121h,AX=1122h,AX=1123h,AX=1124h,AX=1129h,INT 1F"SYSTEM DATA"
  2703. SeeAlso: INT 43"VIDEO DATA"
  2704. --------V-101121-----------------------------
  2705. INT 10 - VIDEO - GRAPH-MODE CHARGEN - SET USER GRAPHICS CHARACTERS (PS,EGA,VGA)
  2706.     AX = 1121h
  2707.     ES:BP -> user table
  2708.     CX = bytes per character
  2709.     BL = row specifier
  2710.         00h user set
  2711.         DL = number of rows
  2712.         01h 14 rows
  2713.         02h 25 rows
  2714.         03h 43 rows
  2715. Return: AL = new number of rows (Diamond Stealth64 Video)
  2716. Note:    this function is meant to be called immediately after a mode set;
  2717.       results are unpredictable at other times
  2718. SeeAlso: AX=1120h,AX=1122h,AX=1123h,AX=1124h,AX=1129h"Compaq"
  2719. SeeAlso: AX=1129h"Diamond",INT 1F"SYSTEM DATA",INT 43"VIDEO DATA"
  2720. --------V-101122-----------------------------
  2721. INT 10 - VIDEO - GRAPH-MODE CHARGEN - SET ROM 8x14 GRAPHICS CHARS (PS,EGA,VGA)
  2722.     AX = 1122h
  2723.     BL = row specifier (see AX=1121h)
  2724. Return: nothing
  2725. Notes:    this function is meant to be called immediately after a mode set;
  2726.       results are unpredictable at other times
  2727.     UltraVision v2+ sets INT 43 to the appropriate font on this call
  2728. SeeAlso: AX=1111h,AX=1120h,AX=1121h,AX=1123h,AX=1124h,AX=1129h
  2729. SeeAlso: INT 1F"SYSTEM DATA",INT 43"VIDEO DATA"
  2730. --------V-101123-----------------------------
  2731. INT 10 - VIDEO - GRAPH-MODE CHARGEN - SET ROM 8x8 DOUBLE-DOT CHARS (PS,EGA,VGA)
  2732.     AX = 1123h
  2733.     BL = row specifier (see AX=1121h)
  2734. Return: nothing
  2735. Notes:    this function is meant to be called immediately after a mode set;
  2736.       results are unpredictable at other times
  2737.     UltraVision v2+ sets INT 43 to the appropriate font on this call
  2738. SeeAlso: AX=1112h,AX=1120h,AX=1121h,AX=1122h,AX=1124h,AX=1129h
  2739. SeeAlso: INT 1F"SYSTEM DATA",INT 43"VIDEO DATA"
  2740. --------V-101124-----------------------------
  2741. INT 10 - VIDEO - GRAPH-MODE CHARGEN - LOAD 8x16 GRAPHICS CHARS (VGA,MCGA)
  2742.     AX = 1124h
  2743.     BL = row specifier (see AX=1121h)
  2744. Return: nothing
  2745. Notes:    this function is meant to be called immediately after a mode set;
  2746.       results are unpredictable at other times
  2747.     UltraVision v2+ sets INT 43 to the appropriate font on this call
  2748. SeeAlso: AX=1120h,AX=1121h,AX=1122h,AX=1123h,AX=1129h
  2749. SeeAlso: INT 1F"SYSTEM DATA",INT 43"VIDEO DATA"
  2750. --------V-101129-----------------------------
  2751. INT 10 - VIDEO - GRAPH-MODE CHARGEN - LOAD 8x16 GRAPH CHARS (Compaq Systempro)
  2752.     AX = 1129h
  2753.     BL = row specifier (see AX=1121h)
  2754. Return: nothing
  2755. Notes:    this function is meant to be called immediately after a mode set;
  2756.       results are unpredictable at other times
  2757.     UltraVision v2+ sets INT 43 to the appropriate font on this call
  2758. SeeAlso: AX=1120h,AX=1121h,AX=1122h,AX=1123h,AX=1124h,INT 1F"SYSTEM DATA"
  2759. SeeAlso: INT 43"VIDEO DATA"
  2760. --------V-101129-----------------------------
  2761. INT 10 - VIDEO - GRAPH-MODE CHARGEN - SET USER GRAPHICS CHARACTERS (Diamond)
  2762.     AX = 1129h
  2763.     DI:BP -> user table
  2764.     CX = bytes per character
  2765.     BL = row specifier
  2766.         00h user set
  2767.         DL = number of rows
  2768.         01h 14 rows
  2769.         02h 25 rows
  2770.         03h 43 rows
  2771. Return: AL = new number of rows
  2772. Notes:    this function is meant to be called immediately after a mode set;
  2773.       results are unpredictable at other times
  2774.     supported by Diamond Stealth64 Video
  2775. SeeAlso: AX=1120h,AX=1122h,AX=1123h,AX=1124h,INT 1F"SYSTEM",INT 43"VIDEO"
  2776. --------V-101130-----------------------------
  2777. INT 10 - VIDEO - GET FONT INFORMATION (EGA, MCGA, VGA)
  2778.     AX = 1130h
  2779.     BH = pointer specifier
  2780.         00h INT 1Fh pointer
  2781.         01h INT 43h pointer
  2782.         02h ROM 8x14 character font pointer
  2783.         03h ROM 8x8 double dot font pointer
  2784.         04h ROM 8x8 double dot font (high 128 characters)
  2785.         05h ROM alpha alternate (9 by 14) pointer (EGA,VGA)
  2786.         06h ROM 8x16 font (MCGA, VGA)
  2787.         07h ROM alternate 9x16 font (VGA only) (see #0020)
  2788.         11h (UltraVision v2+) 8x20 font (VGA) or 8x19 font (autosync EGA)
  2789.         12h (UltraVision v2+) 8x10 font (VGA) or 8x11 font (autosync EGA)
  2790. Return: ES:BP = specified pointer
  2791.     CX    = bytes/character of on-screen font (not the requested font!)
  2792.     DL    = highest character row on screen
  2793. Note:    for UltraVision v2+, the 9xN alternate fonts follow the corresponding
  2794.       8xN font at ES:BP+256N
  2795. BUG:    the IBM EGA and some other EGA cards return in DL the number of rows on
  2796.       screen rather than the highest row number (which is one less).
  2797. SeeAlso: AX=1100h,AX=1103h,AX=1120h,INT 1F"SYSTEM DATA",INT 43"VIDEO DATA"
  2798.  
  2799. Format of alternate font table [array]:
  2800. Offset    Size    Description    (Table 0020)
  2801.  00h    BYTE    character to be replaced (00h = end of table)
  2802.  01h  N BYTEs    graphics data for character, one byte per scan line
  2803. --------V-101130BX4D4F-----------------------
  2804. INT 10 - M10_SCR.COM v3.5+ - INSTALLATION CHECK
  2805.     AX = 1130h
  2806.     BX = 4D4Fh
  2807. Return: CX = 4F4Dh if installed
  2808.         ES:BP -> M10_SCR INT 10 handler
  2809. Program: M10_SCR is a shareware extended text mode and font driver by
  2810.       I.V. Morozov
  2811. SeeAlso: INT 16/AX=4D4Fh
  2812. --------V-1012-------------------------------
  2813. INT 10 - BIOS Window Extension v1.1 - GET BLANKING ATTRIBUTE
  2814.     AH = 12h
  2815. Return: BH = attribute to use on blanked lines when scrolling
  2816. Program: BWE is a TSR by John J. Seal published in May 1986 Dr. Dobb's Journal
  2817. SeeAlso: AH=11h"Window",AH=12h"Window"
  2818. --------V-1012-------------------------------
  2819. INT 10 - Tandy 2000 - VIDEO - SCROLL WINDOW
  2820.     AH = 12h
  2821.     AL = number of rows or columns to scroll
  2822.     BH = buffer flag
  2823.         00h data in user buffer
  2824.         ES:SI -> buffer containing character/attribute pairs
  2825.         01h no buffer, fill emptied rows/columns with blanks
  2826.     BL = direction in which to scroll
  2827.         00h up
  2828.         01h down
  2829.         02h left
  2830.         03h right
  2831.     CH,CL = row,column of upper left corner of scroll area
  2832.     DH,DL = row,column of lower right corner
  2833. Return: nothing
  2834. Notes:    this interrupt is identical to INT 52 on Tandy 2000
  2835.     the user buffer, if supplied, must be organized by row; regardless of
  2836.       the scroll direction, all character/attribute pairs for the first
  2837.       row are first, then the pairs for the second row, etc.
  2838. SeeAlso: AH=00h,AH=0Bh/BH=02h,AH=11h"Tandy 2000",AH=12h"Tandy 2000"
  2839. SeeAlso: INT 52"Tandy"
  2840. --------V-1012--BL10-------------------------
  2841. INT 10 - VIDEO - ALTERNATE FUNCTION SELECT (PS, EGA, VGA, MCGA) - GET EGA INFO
  2842.     AH = 12h
  2843.     BL = 10h
  2844. Return: BH = video state
  2845.         00h color mode in effect (I/O port 3Dxh)
  2846.         01h mono mode in effect (I/O port 3Bxh)
  2847.     BL = installed memory (00h = 64K, 01h = 128K, 02h = 192K, 03h = 256K)
  2848.     CH = feature connector bits (see #0021)
  2849.     CL = switch settings (see #0022,#0023)
  2850.     AH destroyed (at least by Tseng ET4000 BIOS v8.00n)
  2851. Note:    one possible check for the presence of an EGA or later display card
  2852.       is to call this function with BH=FFh; if not present, BH will be
  2853.       unchanged on return
  2854.     another installation check is used by Athena Digital's HGCIBM, which
  2855.       sets CX to FFFFh on calling and checks whether it has been changed
  2856.       on return
  2857. Index:    installation check;EGA
  2858.  
  2859. Bitfields for feature connector bits:
  2860. Bit(s)    Description    (Table 0021)
  2861.  0    FEAT 1 line, state 2
  2862.  1    FEAT 0 line, state 2
  2863.  2    FEAT 1 line, state 1
  2864.  3    FEAT 0 line, state 1
  2865.  4-7    unused (0)
  2866.  
  2867. Bitfields for switch settings:
  2868. Bit(s)    Description    (Table 0022)
  2869.  0    switch 1 OFF
  2870.  1    switch 2 OFF
  2871.  2    switch 3 OFF
  2872.  3    switch 4 OFF
  2873.  4-7    unused
  2874.  
  2875. (Table 0023)
  2876. Values for switch settings on original EGA/VGA:
  2877.  00h        primary MDA/HGC,    secondary EGA+ 40x25
  2878.  01h-03h    primary MDA/HGC,    secondary EGA+ 80x25
  2879.  04h        primary CGA 40x25,    secondary EGA+ 80x25 mono
  2880.  05h        primary CGA 80x25,    secondary EGA+ 80x25 mono
  2881.  06h        primary EGA+ 40x25,    secondary MDA/HGC (optional)
  2882.  07h-09h    primary EGA+ 80x25,    secondary MDA/HGC (optional)
  2883.  0Ah        primary EGA+ 80x25 mono,secondary CGA 40x25 (optional)
  2884.  0Bh        primary EGA+ 80x25 mono,secondary CGA 80x25 (optional)
  2885. --------V-1012--BL11-------------------------
  2886. INT 10 - VIDEO - Trident TVGA 8800/8900/9000 BIOS - GET BIOS INFO
  2887.     AH = 12h
  2888.     BL = 11h
  2889. Return: AL = 12h if function supported
  2890.         BL = ??? (10h)
  2891.         ES:BP -> BIOS info structure (see #0024)
  2892. SeeAlso: AH=12h/BL=12h"TRIDENT"
  2893.  
  2894. Format of Trident BIOS Info structure:
  2895. Offset    Size     Description    (Table 0024)
  2896.  00h    BYTE     ??? (0000h)
  2897.  01h    BYTE     OEM Code (00h for original Trident)
  2898.  02h    WORD     ID??? (1073h for 8800BR, 1074 for 8800CS)
  2899.  04h  8 BYTEs     BIOS date ('mm/dd/yy')
  2900.  0Ch    WORD     ???
  2901.  0Eh  8 BYTEs     BIOS Version (' C3-128 ', ' C3-129 ')
  2902. --------V-1012--BL12-------------------------
  2903. INT 10 - VIDEO - Trident TVGA 8800/8900/9000 BIOS - GET VIDEO RAM SIZE
  2904.     AH = 12h
  2905.     BL = 12h
  2906. Return: AL = 12h if function supported
  2907.         AH = number of 256K banks of RAM installed
  2908.           (read from CRTC register 1Fh)
  2909. SeeAlso: AH=12h/BL=11h"TRIDENT"
  2910. --------V-1012--BL20-------------------------
  2911. INT 10 - VIDEO - ALTERNATE FUNCTION SELECT (PS,EGA,VGA,MCGA) - ALTERNATE PRTSC
  2912.     AH = 12h
  2913.     BL = 20h  select alternate print screen routine
  2914. Return: nothing
  2915. Desc:    installs a PrtSc routine from the video card's BIOS to replace the
  2916.       default PrtSc handler from the ROM BIOS, which usually does not
  2917.       understand screen heights other than 25 lines
  2918. Note:    some adapters disable print-screen instead of enhancing it
  2919. SeeAlso: INT 05"PRINT SCREEN"
  2920. --------V-1012--BL2E-------------------------
  2921. INT 10 - Tseng ET-4000 BIOS v3.00 and v8.00 - BUG
  2922.     AH = 12h
  2923.     BL = 2Eh
  2924. Return: nothing
  2925. Note:    due to an omitted end-of-list marker, these versions of the BIOS will
  2926.       crash the system on this function
  2927. --------V-1012--BL30-------------------------
  2928. INT 10 - VIDEO - ALTERNATE FUNCTION SELECT (VGA) - SELECT VERTICAL RESOLUTION
  2929.     AH = 12h
  2930.     BL = 30h
  2931.     AL = vertical resolution
  2932.          00h 200 scan lines
  2933.          01h 350 scan lines
  2934.          02h 400 scan lines
  2935. Return: AL = 12h if function supported
  2936. Desc:    specify the number of scan lines used to display text modes
  2937. Note:    the specified resolution will take effect on the next mode set
  2938. SeeAlso: AH=00h
  2939. --------V-1012--BL31-------------------------
  2940. INT 10 - VIDEO - ALTERNATE FUNCTION SELECT (VGA, MCGA) - PALETTE LOADING
  2941.     AH = 12h
  2942.     BL = 31h
  2943.     AL = new state
  2944.         00h enable default palette loading
  2945.         01h disable default palette loading
  2946. Return: AL = 12h if function supported
  2947. Desc:    specify whether a default palette should be loaded when the display
  2948.       mode is set
  2949. SeeAlso: AH=00h
  2950. --------V-1012--BL32-------------------------
  2951. INT 10 - VIDEO - ALTERNATE FUNCTION SELECT (VGA, MCGA) - VIDEO ADDRESSING
  2952.     AH = 12h
  2953.     BL = 32h
  2954.     AL = new state
  2955.         00h enable video addressing
  2956.         01h disable video addressing
  2957. Return: AL = 12h if function supported
  2958. Desc:    specify whether the CPU should have access to video memory and the
  2959.       display adapters I/O registers
  2960. --------V-1012--BL33-------------------------
  2961. INT 10 - VIDEO - ALTERNATE FUNCTION SELECT (VGA, MCGA) - GRAY-SCALE SUMMING
  2962.     AH = 12h
  2963.     BL = 33h
  2964.     AL = new state
  2965.         00h enable gray scale summing
  2966.         01h disable gray scale summing
  2967. Return: AL = 12h if function supported
  2968. Desc:    specify whether or not colors should be converted to gray scale when
  2969.       palette or color registers are loaded
  2970. SeeAlso: AX=101Bh,AX=BF06h,AX=BF08h
  2971. --------V-1012--BL34-------------------------
  2972. INT 10 - VIDEO - ALTERNATE FUNCTION SELECT (VGA) - CURSOR EMULATION
  2973.     AH = 12h
  2974.     BL = 34h
  2975.     AL = new state
  2976.         00h enable alphanumeric cursor emulation
  2977.         01h disable alphanumeric cursor emulation
  2978. Return: AL = 12h if function supported
  2979. Desc:    specify whether the BIOS should automatically remap cursor start/end
  2980.       according to the current character height in text modes
  2981. SeeAlso: AH=01h,AH=03h
  2982. --------V-1012--BL35-------------------------
  2983. INT 10 - VIDEO - ALTERNATE FUNCTION SELECT (PS) - DISPLAY-SWITCH INTERFACE
  2984.     AH = 12h
  2985.     BL = 35h
  2986.     AL = subfunction
  2987.         00h initial adapter video off
  2988.         01h initial planar video on
  2989.         02h switch active video off
  2990.         03h switch inactive video on
  2991.         80h *UNDOCUMENTED* set system board video active flag
  2992.     ES:DX -> buffer for 128 byte save area (if AL = 00h-03h)
  2993. Return: AL = 12h if function supported
  2994. Desc:    switch between two video adapters which may otherwise have address
  2995.       conflicts
  2996. SeeAlso: AX=BF00h,AX=BF01h,INT 6D"VGA"
  2997. --------V-1012--BL36-------------------------
  2998. INT 10 - VIDEO - ALTERNATE FUNCTION SELECT (PS, VGA) - VIDEO REFRESH CONTROL
  2999.     AH = 12h
  3000.     BL = 36h
  3001.     AL = new state
  3002.         00h enable refresh
  3003.         01h disable refresh
  3004. Return: AL = 12h if function supported
  3005. Desc:    specify whether the contents of video memory should be displayed on
  3006.       the screen; disabling refresh effectively blanks the screen
  3007. Note:    when display refresh is disabled, the entire screen displays the color
  3008.       specified by the DAC color register 00h; thus to actually blank the
  3009.       screen, the application must first ensure that that register has been
  3010.       set to black
  3011. BUG:    GEM/VIEWMAX ET3000 and ET4000 drivers dated 6/23/88 do not correctly
  3012.       reenable refresh after the screen has been blanked due to inactivity,
  3013.       resulting in a total loss of video synchronization
  3014. SeeAlso: AX=BF05h
  3015. --------V-1012--BL37-------------------------
  3016. INT 10 - VIDEO - XGA - MAINFRAME INTERACTIVE SUPPORT
  3017.     AH = 12h
  3018.     BL = 37h
  3019.     AL = text attribute type (00h normal VGA, 01h mainframe type)
  3020. Return: AL = 12h if supported
  3021. SeeAlso: #0025,AH=08h
  3022.  
  3023. Bitfields for XGA mainframe type character attributes:
  3024. Bit(s)    Description    (Table 0025)
  3025.  7    blink double rate (75% ON time) or use color 8 as background
  3026.     (see AX=1003h)
  3027.  6    reverse video
  3028.  5    underlined
  3029.  4    left-most and right-most dots of underline area inverted
  3030.  3    foreground intensity/character font select
  3031.  2-0    foreground color
  3032. SeeAlso: #0013,#0033
  3033. --------V-1012--BL53-------------------------
  3034. INT 10 - Tseng ET-4000 BIOS v8.00 (06/07/91) - BUG
  3035.     AH = 12h
  3036.     BL = 53h
  3037. Note:    due to an omitted end-of-list marker, this version of the BIOS will
  3038.       crash the system on this function
  3039. --------V-1012--BL57-------------------------
  3040. INT 10 - Tseng ET-4000 BIOS v8.00 (06/07/91) - BUG
  3041.     AH = 12h
  3042.     BL = 57h
  3043. Note:    due to an omitted end-of-list marker, this version of the BIOS will
  3044.       crash the system on this function
  3045. --------V-1012--BH55-------------------------
  3046. INT 10 - VIDEO - ALTERNATE FUNC SELECT (ATI,Tatung,Taxan) - ENHANCED FEATURES
  3047.     AH = 12h
  3048.     BH = 55h
  3049.     BL = subfunction
  3050.         00h disable enhanced features
  3051.         01h enable enhanced features
  3052.         02h get status
  3053.         Return: AL = status flags (see #0026)
  3054.         03h disable register trapping (CGA emulation)
  3055.         04h enable register trapping
  3056.         05h program video mode
  3057.         ES:BP -> video mode table (see #0027)
  3058.         06h get mode table
  3059.         AL = video mode
  3060.         Return: ES:BP -> table suitable for mode AL
  3061.                   (and subfunc BL=05h) (see #0027)
  3062.             BP = FFFFh on error
  3063.             SI = 0000h (ATI Mach32)
  3064. Note:    the ATI Mouse driver (MOUSE.COM/MOUSE.SYS) uses subfunction 06h to get
  3065.       the mode table for mode 03h, and then looks for a signature string
  3066.       beginning within 32 bytes of the offset specified by the word at
  3067.       ES:000Ch
  3068. SeeAlso: AH=FFh"Oak"
  3069. Index:    installation check;ATI video adapters
  3070.  
  3071. Bitfields for status flags:
  3072. Bit(s)    Description    (Table 0026)
  3073.  3    set if enhanced features enabled
  3074.  7-5    monitor type
  3075.     000 PS/2 mono
  3076.     001 PS/2 color
  3077.     010 multi-sync
  3078.     011 Taxan 650 25kHz
  3079.     100 RGB
  3080.     101 mono
  3081.     110 EGA
  3082.     111 Compaq internal
  3083.  
  3084. Format of ATI VGA Wonder video mode table:
  3085. Offset    Size    Description    (Table 0027)
  3086.  00h    BYTE    number of columns
  3087.  01h    BYTE    maximum row (number of rows - 1)
  3088.  02h    BYTE    scan lines per row
  3089.  03h    WORD    video buffer size in bytes
  3090.  05h  4 BYTEs    values for Sequencer registers 1-4
  3091.  09h    BYTE    value for Miscellaneous Output register
  3092.  0Ah 25 BYTEs    values for CRTC registers 00h-18h
  3093.         00h horizontal total size (chars)
  3094.         01h horizontal displayed (chars)
  3095.         02h horizontal sync position (chars)
  3096.         03h horizontal sync width (chars)
  3097.         04h vertical total size (char rows)
  3098.         05h vertical total adjust (scan lines)
  3099.         06h vertical displayed (char rows)
  3100.         07h vertical sync position (char rows)
  3101.         08h interlace mode
  3102.         09h max scan line in row
  3103.         0Ah cursor start scan line
  3104.         0Bh cursor end scan line
  3105.         0Ch screen memory start (high)
  3106.         0Dh screen memory start (low)
  3107.         0Eh cursor address (high)
  3108.         0Fh cursor address (low)
  3109.         10h light pen (high)
  3110.         11h light pen (low)
  3111.  23h 20 BYTEs    default palette (values for Attribute Controller regs 00h-13h)
  3112.  37h  9 BYTEs    values for Graphics Controller registers 00h-08h
  3113. --------V-1012--BL74-------------------------
  3114. INT 10 - Tseng ET-4000 BIOS v3.00 and v8.00 - BUG
  3115.     AH = 12h
  3116.     BL = 74h
  3117. Note:    due to an omitted end-of-list marker, these versions of the BIOS will
  3118.       crash the system on this function
  3119. --------V-1012--BL80-------------------------
  3120. INT 10 - Tseng ET-4000 BIOS v3.00 and v8.00 - BUG
  3121.     AH = 12h
  3122.     BL = 80h
  3123. Note:    due to an omitted end-of-list marker, these versions of the BIOS will
  3124.       crash the system on this function
  3125. --------V-1012--BL80-------------------------
  3126. INT 10 - Cirrus Logic BIOS - INQUIRE VGA TYPE
  3127.     AH = 12h
  3128.     BL = 80h
  3129. Return: AX = controller type in bits 13-0 (see #0028)
  3130.         bit 14: ???
  3131.         bit 15: ???
  3132.     BL = silicon revision number (bit 7 set if not available)
  3133. SeeAlso: AH=12h/BL=81h,AH=12h/BL=82h,AH=12h/BL=85h,AH=12h/BL=9Ah,AH=12h/BL=A1h
  3134.  
  3135. (Table 0028)
  3136. Values for Cirrus Logic video controller type:
  3137.  0000h    no extended alternate select support
  3138.  0002h    510/520
  3139.  0003h    610/620
  3140.  0004h    5320
  3141.  0005h    6410
  3142.  0006h    5410
  3143.  0007h    6420
  3144.  0008h    6412
  3145.  0010h    5401
  3146.  0011h    5402
  3147.  0012h    5420
  3148.  0013h    5422
  3149.  0014h    5424
  3150.  0015h    5426
  3151.  0016h    5420r1
  3152.  0017h    5402r1
  3153.  0018h    5428
  3154.  0020h    6205/15/25
  3155.  0030h    5432
  3156.  0031h    5434
  3157. SeeAlso: #0629,#3440
  3158. --------V-1012--BL81-------------------------
  3159. INT 10 - Cirrus Logic BIOS - GET BIOS VERSION NUMBER
  3160.     AH = 12h
  3161.     BL = 81h
  3162. Return: AH = BIOS major version
  3163.     AL = BIOS minor version
  3164. SeeAlso: AH=12h/BL=80h,AH=12h/BL=82h
  3165. --------V-1012--BL82-------------------------
  3166. INT 10 - Cirrus Logic BIOS - GET DESIGN REVISION CODE
  3167.     AH = 12h
  3168.     BL = 82h
  3169. Return: AL = chip revision
  3170.     AH = ??? (AFh for v1.01)
  3171. SeeAlso: AH=12h/BL=80h,AH=12h/BL=81h,#0629
  3172. --------V-1012--BL84-------------------------
  3173. INT 10 - Cirrus Logic BIOS v3.02 - INQUIRE OPTIONS
  3174.     AH = 12h
  3175.     BL = 84h
  3176. Return: AX = user options word (see #0029)
  3177. SeeAlso: AH=12h/BL=89h,AH=12h/BL=8Ah,AH=12h/BL=8Bh,AH=12h/BL=8Ch,AH=12h/BL=8Fh
  3178. SeeAlso: AH=12h/BL=90h,AH=12h/BL=9Ah
  3179.  
  3180. Bitfields for Cirrus Logic user options word:
  3181. Bit(s)    Description    (Table 0029)
  3182.  1,0    centering
  3183.     00 vertical centered, 01 from bottom, 10 from top, 11 reserved
  3184.  3,2    720-dot fix-up options
  3185.     00 OR every 8th and 9th pixel
  3186.     01 display MGA mode from left
  3187.     10 display MGA mode from right
  3188.     11 skip every 9th pixel
  3189.  4    ???
  3190.  7-5    video mode (001 CGA, 010 MGA, 011 EGA, 100 VGA)
  3191.  8    external monitor enabled instead of LCD panel
  3192.  9    vertical expand mode enabled
  3193.  10    8-bit mode instead of 16-bit mode
  3194.  11    normal video rather than reverse video (for LCD)
  3195.  12    attribute automap rather than attribute emulation
  3196.  13    bold mode disabled (default)
  3197.  14    fast bandwidth
  3198.  15    ???
  3199. --------V-1012--BL85-------------------------
  3200. INT 10 - Cirrus Logic BIOS - GET INSTALLED MEMORY
  3201.     AH = 12h
  3202.     BL = 85h
  3203. Return: AL = number of 64K banks of video memory
  3204. SeeAlso: AH=12h/BL=80h,AH=12h/BL=93h
  3205. --------V-1012--BL89-------------------------
  3206. INT 10 - Cirrus Logic BIOS v3.02 - LCD panel - EN/DISABLE REVERSE VIDEO MODE
  3207.     AH = 12h
  3208.     BL = 89h
  3209.     AL = new state (00h enabled, 01h disabled)
  3210. Return: nothing
  3211. SeeAlso: AH=12h/BL=84h,AH=12h/BL=8Ah,AH=12h/BL=8Bh
  3212. --------V-1012--BL8A-------------------------
  3213. INT 10 - Cirrus Logic BIOS v3.02 - LCD panel - SET FRAME COLOR
  3214.     AH = 12h
  3215.     BL = 8Ah
  3216.     AL = new gray-scale color (00h = black to 0Fh = white)
  3217. Return: nothing
  3218. SeeAlso: AH=12h/BL=84h,AH=12h/BL=89h,AH=12h/BL=8Fh
  3219. --------V-1012--BL8B-------------------------
  3220. INT 10 - Cirrus Logic BIOS v3.02 - LCD panel - ENABLE/DISABLE BOLD MODE
  3221.     AH = 12h
  3222.     BL = 8Bh
  3223.     AL = new state (00h enabled, 01h disabled)
  3224. Return: nothing
  3225. SeeAlso: AH=12h/BL=84h,AH=12h/BL=89h,AH=12h/BL=8Ch,AH=12h/BL=8Fh
  3226. --------V-1012--BL8C-------------------------
  3227. INT 10 - Cirrus Logic BIOS v3.02 - LCD panel - SET AUTOMAP/EMULATE ATTRIBUTES
  3228.     AH = 12h
  3229.     BL = 8Ch
  3230.     AL = new state
  3231.         00h enable automap
  3232.         01h disable automap and emulate attributes
  3233. Return: nothing
  3234. SeeAlso: AH=12h/BL=84h,AH=12h/BL=8Bh
  3235. --------V-1012--BL8F-------------------------
  3236. INT 10 - Cirrus Logic BIOS v3.02 - LCD panel - ENABLE/DISABLE EXPAND MODE
  3237.     AH = 12h
  3238.     BL = 8Fh
  3239.     AL = new state (00h enabled, 01h disabled)
  3240. Return: nothing
  3241. Note:    when expand mode is enabled, the vertical dimension is enlarged to
  3242.       full screen
  3243. SeeAlso: AH=12h/BL=84h,AH=12h/BL=89h,AH=12h/BL=8Bh,AH=12h/BL=90h
  3244. --------V-1012--BL90-------------------------
  3245. INT 10 - Cirrus Logic BIOS v3.02 - LCD panel - SET CENTERING MODE
  3246.     AH = 12h
  3247.     BL = 90h
  3248.     AL = new position
  3249.         00h centered
  3250.         01h from top
  3251.         02h from bottom
  3252.         03h from top
  3253. Return: nothing
  3254. SeeAlso: AH=12h/BL=84h,AH=12h/BL=8Fh
  3255. --------V-1012--BL91-------------------------
  3256. INT 10 - Cirrus Logic BIOS v3.02 - LCD panel - SET 720-DOT FIXUP MODE
  3257.     AH = 12h
  3258.     BL = 91h
  3259.     AL = new mode
  3260.         00h display MGA mode from left of screen (default)
  3261.         01h display MGA from right
  3262.         02h skip every ninth pixel
  3263.         03h OR every 8th and 9th pixel
  3264. Return: nothing
  3265. SeeAlso: AH=12h/BL=84h,AH=12h/BL=8Ah,AH=12h/BL=90h
  3266. --------V-1012--BL92-------------------------
  3267. INT 10 - Cirrus Logic BIOS v3.02 - LCD panel - SWITCH DISPLAY
  3268.     AH = 12h
  3269.     BL = 92h
  3270.     AL = new display (00h LCD, 01h external monitor)
  3271. Return: nothing
  3272. Note:    the deselected display is disabled
  3273. SeeAlso: AH=12h/BL=84h,AH=12h/BL=89h,AH=12h/BL=90h,AH=12h/BL=94h
  3274. --------V-1012--BL93-------------------------
  3275. INT 10 - Cirrus Logic BIOS - FORCE 8-BIT OR 16-BIT OPERATION
  3276.     AH = 12h
  3277.     BL = 93h
  3278.     AL = new I/O width (00h = 16 bits, 01h = 8 bits)
  3279. Return: nothing
  3280. SeeAlso: AH=12h/BL=9Ah
  3281. --------V-1012--BL94-------------------------
  3282. INT 10 - Cirrus Logic BIOS v3.02 - POWER CONSERVATION
  3283.     AH = 12h
  3284.     BL = 94h
  3285.     AL = new state (00h wake up monitor, 01h shut down display)
  3286. Return: nothing
  3287. Note:    AL=01h is reported not to work properly on the LCD panel
  3288. SeeAlso: AH=12h/BL=84h,AH=12h/BL=92h
  3289. --------V-1012--BL9A-------------------------
  3290. INT 10 - Cirrus Logic BIOS - GET USER OPTIONS
  3291.     AH = 12h
  3292.     BL = 9Ah
  3293. Return: AX = options word 1 (see #0030)
  3294.     CX = options word 2 (see #0031)
  3295. SeeAlso: AH=12h/BL=80h,AH=12h/BL=84h,AH=12h/BL=93h,AH=12h/BL=A0h
  3296. SeeAlso: AH=12h/BL=A3h,AH=12h/BL=A4h,#0629
  3297.  
  3298. Bitfields for Cirrus Logic options word 1:
  3299. Bit(s)    Description    (Table 0030)
  3300.  0,1    reserved
  3301.  2-4    monitor type
  3302.  5-6    maximum vertical resolution
  3303.  7-9    reserved
  3304.  10    force 8-bit operation
  3305.  11-13    reserved
  3306.  14    vertical refresh frequency at 640x480
  3307.  15    reserved
  3308.  
  3309. Bitfields for Cirrus Logic options word 2:
  3310. Bit(s)    Description    (Table 0031)
  3311.  0-3    reserved
  3312.  4-5    vertical refresh frequency at 1280x1024
  3313.  6-10    reserved
  3314.  11-12    vertical refresh frequency at 800x600
  3315.  13-15    vertical refresh frequency at 1024x768
  3316. --------V-1012--BLA0-------------------------
  3317. INT 10 - Cirrus Logic BIOS - GET VIDEO MODE AVAILABILITY
  3318.     AH = 12h
  3319.     BL = A0h
  3320.     AL = video mode number (00h-7Fh)
  3321. Return: AH bit 0: video mode supported
  3322.     BX = offset of BIOS subroutine to fixup standard video parameters
  3323.         (call subroutine with DS:SI and ES:DI as returned by this call)
  3324.     DS:SI -> standard video parameters or FFFFh:FFFFh
  3325.     ES:DI -> supplemental video parameters or FFFFh:FFFFh
  3326. SeeAlso: AH=00h,AH=12h/BL=9Ah,AH=12h/BL=A1h
  3327. --------V-1012--BLA1-------------------------
  3328. INT 10 - Cirrus Logic BIOS - READ MONITOR TYPE AND ID FROM 15-PIN CONNECTOR
  3329.     AH = 12h
  3330.     BL = A1h
  3331. Return: BH = monitor ID (see #0032)
  3332.     BL = monitor type (00h color, 01h grayscale, 02h no display)
  3333. SeeAlso: AH=12h/BL=9Ah,AH=12h/BL=A2h
  3334.  
  3335. (Table 0032)
  3336. Values for Cirrus Logic monitor ID:
  3337.  00h-08h reserved
  3338.  09h    IBM 8604/8507 or equivalent
  3339.  0Ah    IBM 8514 or equivalent
  3340.  0Bh    IBM 8515 or equivalent
  3341.  0Dh    IBM 8503 or equivalent
  3342.  0Eh    IBM 8512/8513 or equivalent
  3343.  0Fh    no monitor
  3344. --------V-1012--BLA2-------------------------
  3345. INT 10 - Cirrus Logic BIOS - SET MONITOR HORIZONTAL RETRACE FREQUENCY
  3346.     AH = 12h
  3347.     BL = A2h
  3348.     AL = retrace rate
  3349.         00h standard VGA (31.5 kHz)
  3350.         01h 8514-compatible (31.5 kHz and 35.5 kHz interlaced)
  3351.         02h SuperVGA (31.5-35.1 kHz)
  3352.         03h extended SuperVGA (31.5-35.5 kHz)
  3353.         04h multi-frequency (31.5-37.8 kHz)
  3354.         05h extended multi-frequency (31.5-48.0 kHz)
  3355.         06h super multi-frequency (31.5-56.0 kHz)
  3356.         07h extended super multi-frequency (31.5-64.0 kHz)
  3357. Return: nothing
  3358. SeeAlso: AH=12h/BL=9Ah,AH=12h/BL=A0h,AH=12h/BL=A4h
  3359. --------V-1012--BLA3-------------------------
  3360. INT 10 - Cirrus Logic BIOS - SET VGA REFRESH
  3361.     AH = 12h
  3362.     BL = A3h
  3363.     AL = refresh rate for 640x480 (00h normal, 01h high)
  3364. Return: nothing
  3365. SeeAlso: AH=12h/BL=9Ah,AH=12h/BL=A4h
  3366. --------V-1012--BLA4-------------------------
  3367. INT 10 - Cirrus Logic BIOS - SET MONITOR TYPE
  3368.     AH = 12h
  3369.     BL = A4h
  3370.     AL bits 3-0 = maximum vertical resolution
  3371.         (0 = 480 scanlines, 1 = 600, 2 = 768, 3 = 1024, other reserved)
  3372.     AL bits 7-4 = vertical refresh at 640x480
  3373.         (0 = 60Hz, 1 = 72Hz, other reserved)
  3374.     BH bits 3-0 = vertical refresh at 800x600
  3375.         (0 = 56Hz, 1 = 60Hz, 2 = 72Hz, other reserved)
  3376.     BH bits 7-4 = vertical refresh at 1024x768
  3377.         (0=87Hz-int, 1=60Hz, 2=70Hz, 3=72Hz, 4=76Hz, other reserved)
  3378.     CH bits 4-7 = vertical refresh at 1280x1024
  3379.         (0=87Hz-int, 1=60Hz, 2=70Hz, other reserved)
  3380. Return: nothing
  3381. SeeAlso: AH=12h/BL=9Ah,AH=12h/BL=A3h
  3382. --------V-1012--BLBE-------------------------
  3383. INT 10 - Tseng ET-4000 BIOS v3.00 and v8.00 - BUG
  3384.     AH = 12h
  3385.     BL = BEh
  3386. Note:    due to an omitted end-of-list marker, these versions of the BIOS will
  3387.       crash the system on this function
  3388. --------V-1012--BLC6-------------------------
  3389. INT 10 - Tseng ET-4000 BIOS v3.00 and v8.00 - BUG
  3390.     AH = 12h
  3391.     BL = C6h
  3392. Note:    due to an omitted end-of-list marker, these versions of the BIOS will
  3393.       crash the system on this function
  3394. --------V-1012--BLF0-------------------------
  3395. INT 10 - Tseng ET-4000 BIOS v3.00 and v8.00 - BUG
  3396.     AH = 12h
  3397.     BL = F0h
  3398. Note:    due to an omitted end-of-list marker, these versions of the BIOS will
  3399.       crash the system on this function
  3400. --------V-1013-------------------------------
  3401. INT 10 - VIDEO - WRITE STRING (AT and later,EGA)
  3402.     AH = 13h
  3403.     AL = write mode
  3404.        bit 0: update cursor after writing
  3405.        bit 1: string contains alternating characters and attributes
  3406.        bits 2-7: reserved (0)
  3407.     BH = page number
  3408.     BL = attribute if string contains only characters
  3409.     CX = number of characters in string
  3410.     DH,DL = row,column at which to start writing
  3411.     ES:BP -> string to write
  3412. Return: nothing
  3413. Notes:    recognizes CR, LF, BS, and bell; for the ET4000 BIOS, scrolling,
  3414.       backspace, and CR only take place in the active page
  3415.     also available PC or XT with EGA or higher
  3416.     HP 95LX only supports write mode 00h
  3417. BUG:    on the IBM VGA Adapter, any scrolling which may occur is performed on
  3418.       the active page rather than the requested page
  3419. SeeAlso: AH=09h,AH=0Ah,AH=13h"DOS/V"
  3420. --------J-1013-------------------------------
  3421. INT 10 - DOS/V - READ/WRITE DOUBLE-BYTE CHARACTER SET CHARACTERS/ATTRIBUTES
  3422.     AH = 13h
  3423.     AL = function
  3424.         10h read characters and standard attributes
  3425.         11h read characters and extended attributes
  3426.         12h write characters and standard attributes
  3427.         13h write characters and extended attributes
  3428.     BH = 00h
  3429.     CX = number of characters to transfer
  3430.     DH,DL = row,column at which to start transfer
  3431.     ES:BP -> buffer for/containing characters and attributes (see #0033)
  3432. Return: ES:BP buffer filled if reading
  3433. Program: DOS/V is a Japanese-language version of MS-DOS which can run on
  3434.       standard (non-Japanese) ATs and compatible equipped with a VGA or
  3435.       newer video adapter
  3436. Notes:    subfunctions 11h and 13h are only valid when DOS/V is using video
  3437.       mode 73h
  3438.     the cursor position is not changed by these functions
  3439.     extended attributes consist of three bytes; the first is the standard
  3440.       character attribute byte, the second is as described below, and the
  3441.       third is always zero in current versions
  3442. SeeAlso: AH=00h,AH=13h"VIDEO"
  3443.  
  3444. Bitfields for DOS/V second extended attribute byte:
  3445. Bit(s)    Description    (Table 0033)
  3446.  7    underline using foreground color
  3447.  6    reverse foreground/background specified in standard attribute byte
  3448.  5-4    unused
  3449.  3    vertical white grid line in cell
  3450.  2    horizontal white grid line in cell
  3451.  1-0    unused
  3452. SeeAlso: #0013,#0025
  3453. --------V-101400-----------------------------
  3454. INT 10 - VIDEO - LOAD USER-SPECIFIED LCD CHARACTER FONT (CONV,Compaq Port 386)
  3455.     AX = 1400h
  3456.     ES:DI -> character font
  3457.     BH = number of bytes per character
  3458.         08h or 10h (Compaq)
  3459.     BL = 00h load main font (block 0)
  3460.          01h load alternate font (block 1)
  3461.     CX = number of characters to store
  3462.     DX = character offset into RAM font area
  3463. Return: nothing
  3464. SeeAlso: AX=1100h,AX=1110h,AX=1401h
  3465. --------V-101401-----------------------------
  3466. INT 10 - VIDEO - LOAD SYSTEM ROM DEFAULT LCD CHARACTER FONT (CONV,CP386)
  3467.     AX = 1401h
  3468.     BL = font to load
  3469.         00h main font (block 0)
  3470.         01h alternate font (block 1)
  3471. Return: nothing
  3472. SeeAlso: AX=1100h,AX=1102h,AX=1400h
  3473. --------V-101402-----------------------------
  3474. INT 10 - VIDEO - SET MAPPING OF LCD HIGH INTENSITY ATTRIBUTES (CONV,CP386)
  3475.     AX = 1402h
  3476.     BL = subfunction
  3477.         00h ignore high intensity attribute
  3478.         01h map high intensity to reverse video
  3479.         02h map high intensity to underscore
  3480.         03h map high intensity to selected alternate font
  3481.         B0h half intensity (Compaq)
  3482.         B1h toggle active intensity bit interpretation (CP386)
  3483. Return: nothing
  3484. --------V-1015-------------------------------
  3485. INT 10 - VIDEO - GET PHYSICAL DISPLAY PARAMETERS (CONVERTIBLE)
  3486.     AH = 15h
  3487. Return: AX = alternate display adapter type (see #0034)
  3488.     ES:DI -> parameter table (see #0035)
  3489. SeeAlso: AH=1Bh
  3490.  
  3491. (Table 0034)
  3492. Values for PC Convertible alternate display adapter type:
  3493.  0000h    none
  3494.  5140h    LCD
  3495.  5153h    CGA
  3496.  5151h    mono
  3497.  
  3498. Format of PC Convertible display parameter table:
  3499. Offset    Size    Description    (Table 0035)
  3500.  00h    WORD    monitor model number
  3501.  02h    WORD    vertical pixels per meter
  3502.  04h    WORD    horizontal pixels per meter
  3503.  06h    WORD    total vertical pixels
  3504.  08h    WORD    total horizontal pixels
  3505.  0Ah    WORD    horizontal pixel separation in micrometers
  3506.         (width, center-to-center)
  3507.  0Ch    WORD    vertical pixel separation in micrometers
  3508.         (height, center-to-center)
  3509. --------V-1015-------------------------------
  3510. INT 10 - VIDEO - SET SUPERIMPOSE MODE (Sperry PC)
  3511.     AH = 15h
  3512.     AL = superimpose mode
  3513.         00h show graphics screen
  3514.         01h show text screen
  3515.         02h show text screen superimposed on graphics screen
  3516. Return: nothing
  3517. --------J-1018-------------------------------
  3518. INT 10 - VIDEO - DOS/V - GET/SET FONT PATTERN
  3519.     AH = 18h
  3520.     AL = subfunction
  3521.         00h get font pattern
  3522.         01h set font pattern
  3523.     BX = 0000h
  3524.     CL = character size in bytes (01h,02h)
  3525.     CH = 00h
  3526.     DH = character width in pixels
  3527.     DL = character height in pixels
  3528.     ES:DI -> buffer for/containing font image
  3529. Return: AL = status (00h successful, else error)
  3530.     ES:DI buffer filled for function 00h if successful
  3531. Note:    the supported font sizes are 8x16 single-byte, 8x19 single-byte,
  3532.       16x16 double-byte, and 24x24 double-byte
  3533. SeeAlso: AH=19h,INT 16/AH=14h
  3534. --------V-1019-------------------------------
  3535. INT 10 - Japanese VIDEO - DOUBLE-BYTE CHARACTER SET SHIFT INFORMATION
  3536.     AH = 19h
  3537.     ???
  3538. Return: ???
  3539. SeeAlso: AH=18h,INT 16/AH=14h
  3540. --------V-101A00-----------------------------
  3541. INT 10 - VIDEO - GET DISPLAY COMBINATION CODE (PS,VGA/MCGA)
  3542.     AX = 1A00h
  3543. Return: AL = 1Ah if function was supported
  3544.         BL = active display code (see #0036)
  3545.         BH = alternate display code (see #0036)
  3546. Notes:    this function is commonly used to check for the presence of a VGA
  3547.     this function is supported on the ATI EGA Wonder with certain
  3548.       undocumented configuration switch settings, even though the EGA
  3549.       Wonder does not support VGA graphics; to distinguish this case,
  3550.       call AX=1C00h with CX nonzero, which the EGA Wonder does not support
  3551. SeeAlso: AH=12h/BL=35h,AX=1A01h,AH=1Bh,AH=1Ch
  3552. Index:    installation check;VGA
  3553.  
  3554. (Table 0036)
  3555. Values for display combination code:
  3556.  00h    no display
  3557.  01h    monochrome adapter w/ monochrome display
  3558.  02h    CGA w/ color display
  3559.  03h    reserved
  3560.  04h    EGA w/ color display
  3561.  05h    EGA w/ monochrome display
  3562.  06h    PGA w/ color display
  3563.  07h    VGA w/ monochrome analog display
  3564.  08h    VGA w/ color analog display
  3565.  09h    reserved
  3566.  0Ah    MCGA w/ digital color display
  3567.  0Bh    MCGA w/ monochrome analog display
  3568.  0Ch    MCGA w/ color analog display
  3569.  FFh    unknown display type
  3570. --------V-101A01-----------------------------
  3571. INT 10 - VIDEO - SET DISPLAY COMBINATION CODE (PS,VGA/MCGA)
  3572.     AX = 1A01h
  3573.     BL = active display code (see #0036)
  3574.     BH = alternate display code
  3575. Return: AL = 1Ah if function was supported
  3576. SeeAlso: AH=12h/BL=35h,AX=1A00h
  3577. --------V-101B-------------------------------
  3578. INT 10 - VIDEO - FUNCTIONALITY/STATE INFORMATION (PS,VGA/MCGA)
  3579.     AH = 1Bh
  3580.     BX = implementation type
  3581.         0000h return funtionality/state information
  3582.     ES:DI -> 64-byte buffer for state information (see #0037)
  3583. Return: AL = 1Bh if function supported
  3584.         ES:DI buffer filled with state information
  3585. BUG:    Trident 8900 (BIOS D3.0 11/12/91) and Trident 9000 (C3.0 10/25/91)
  3586.       do not correctly set the fields at offsets 27h and 29h of the
  3587.       state information
  3588. SeeAlso: AH=15h,AX=1A00h,AX=1F01h
  3589.  
  3590. Format of MCGA+ state information:
  3591. Offset    Size    Description    (Table 0037)
  3592.  00h    DWORD    address of static funtionality table (see #0040)
  3593.  04h    BYTE    video mode in effect
  3594.  05h    WORD    number of columns
  3595.  07h    WORD    length of regen buffer in bytes
  3596.  09h    WORD    starting address of regen buffer
  3597.  0Bh    WORD    cursor position for page 0
  3598.  0Dh    WORD    cursor position for page 1
  3599.  0Fh    WORD    cursor position for page 2
  3600.  11h    WORD    cursor position for page 3
  3601.  13h    WORD    cursor position for page 4
  3602.  15h    WORD    cursor position for page 5
  3603.  17h    WORD    cursor position for page 6
  3604.  19h    WORD    cursor position for page 7
  3605.  1Bh    WORD    cursor "type" (start/stop scan lines)
  3606.  1Dh    BYTE    active display page
  3607.  1Eh    WORD    CRTC port address
  3608.  20h    BYTE    current setting of register 03x8h
  3609.  21h    BYTE    current setting of register 03x9h
  3610.  22h    BYTE    number of rows - 1
  3611.  23h    WORD    bytes/character
  3612.  25h    BYTE    display combination code of active display
  3613.  26h    BYTE    DCC of alternate display
  3614.  27h    WORD    number of colors supported in current mode (0000h = mono)
  3615.  29h    BYTE    number of pages supported in current mode
  3616.  2Ah    BYTE    number of scan lines active
  3617.         (0,1,2,3) = (200,350,400,480)
  3618.         Tseng ET3000: (4,5,6 = 512,600,768)
  3619.  2Bh    BYTE    primary character block
  3620.  2Ch    BYTE    secondary character block
  3621.  2Dh    BYTE    miscellaneous flags (see #0038)
  3622.  2Eh  3 BYTEs    reserved (00h)
  3623.  31h    BYTE    video memory available
  3624.         00h = 64K, 01h = 128K, 02h = 192K, 03h = 256K
  3625.  32h    BYTE    save pointer state flags (see #0039)
  3626.  33h 13 BYTEs    reserved (00h)
  3627.  
  3628. Bitfields for miscellaneous flags:
  3629. Bit(s)    Description    (Table 0038)
  3630.  0    all modes on all displays on
  3631.  1    gray summing on
  3632.  2    monochrome display attached
  3633.  3    default palette loading disabled
  3634.  4    cursor emulation enabled
  3635.  5    0 = intensity; 1 = blinking
  3636.  6    PS/2 P70 plasma display (without 9-dot wide font) active
  3637.  7    unused (0)
  3638.  
  3639. Bitfields for save pointer state flags:
  3640. Bit(s)    Description    (Table 0039)
  3641.  0    512 character set active
  3642.  1    dynamic save area present
  3643.  2    alpha font override active
  3644.  3    graphics font override active
  3645.  4    palette override active
  3646.  5    DCC override active
  3647.  6-7    unused (0)
  3648.  
  3649. Format of Static Functionality Table:
  3650. Offset    Size    Description    (Table 0040)
  3651.  00h    BYTE    modes supported 1
  3652.         bit 0 to bit 7 = 1 modes 0,1,2,3,4,5,6,7 supported
  3653.  01h    BYTE    modes supported 2
  3654.         bit 0 to bit 7 = 1 modes 8,9,0Ah,0Bh,0Ch,0Dh,0Eh,0Fh supported
  3655.  02h    BYTE    modes supported 3
  3656.         bit 0 to bit 3 = 1 modes 10h,11h,12h,13h supported
  3657.         bit 4 to bit 7 unused (0)
  3658.  03h    BYTE    (IBM) reserved
  3659.         (Tseng ET3000/4000) modes supported 4
  3660.                 bit 0 to bit 7 = modes 18h-1Fh supported
  3661.  04h    BYTE    (IBM) reserved
  3662.         (Tseng ET3000/4000) modes supported 5
  3663.                 bit 0 to bit 7 = modes 20h-27h supported
  3664.  05h    BYTE    (IBM) reserved
  3665.         (Tseng ET3000/4000) modes supported 6
  3666.                 bit 0 to bit 7 = modes 28h-2Fh supported
  3667.  06h    BYTE    (IBM) reserved
  3668.         (Tseng ET3000/4000) modes supported 7
  3669.                 bit 0 to bit 7 = modes 30h-37h supported
  3670.  07h    BYTE    scan lines supported
  3671.         bit 0 to bit 2 = 1 if scan lines 200,350,400 supported
  3672.         bits 3-7 = unused (0)
  3673.  08h    BYTE    total number of character blocks available in text modes
  3674.  09h    BYTE    maximum number of active character blocks in text modes
  3675.  0Ah    WORD    miscellaneous function support flags (see #0041)
  3676.  0Ch    WORD    reserved
  3677.  0Eh    BYTE    save pointer function flags (see #0042)
  3678.  0Fh    BYTE    reserved
  3679.  
  3680. Bitfields for miscellaneous function support flags:
  3681. Bit(s)    Description    (Table 0041)
  3682.  0    all modes on all displays function supported
  3683.  1    gray summing function supported
  3684.  2    character font loading function supported
  3685.  3    default palette loading enable/disable supported
  3686.  4    cursor emulation function supported
  3687.  5    EGA palette present
  3688.  6    color palette present
  3689.  7    color-register paging function supported
  3690.  8    light pen supported (see AH=04h)
  3691.  9    save/restore state function 1Ch supported
  3692.  10    intensity/blinking function supported (see AX=1003h)
  3693.  11    Display Combination Code supported (see #0036)
  3694.  12-15    unused (0)
  3695.  
  3696. Bitfields for save pointer function flags:
  3697. Bit(s)    Description    (Table 0042)
  3698.  0    512 character set supported
  3699.  1    dynamic save area supported
  3700.  2    alpha font override supported
  3701.  3    graphics font override supported
  3702.  4    palette override supported
  3703.  5    DCC extension supported
  3704.  6-7    unused (0)
  3705. --------V-101C-------------------------------
  3706. INT 10 - VIDEO - SAVE/RESTORE VIDEO STATE (PS50+,VGA)
  3707.     AH = 1Ch
  3708.     AL = function
  3709.         00h return state buffer size
  3710.         Return: BX = number of 64-byte blocks needed
  3711.         01h save video state
  3712.         ES:BX -> buffer
  3713.         02h restore video state
  3714.         ES:BX -> buffer containing previously saved state
  3715.     CX = requested states (see #0043)
  3716. Return: AL = 1Ch if function supported
  3717. Notes:    many BIOSes corrupt the video registers when saving the state, so a
  3718.       program should restore the state immediately after saving it (the
  3719.       saved data is uncorrupted)
  3720.     the BIOS data area consists of the 96 bytes from 0040h:0049h-00A8h
  3721.     this function is not supported when DOS/V is running
  3722.     this function may be a better VGA installation check than the usual
  3723.       INT 10/AX=1A00h, since some late-model EGA cards (such as the ATI
  3724.       EGA Wonder) supported that call
  3725. SeeAlso: AX=1A00h
  3726.  
  3727. Bitfields for requested states:
  3728. Bit(s)    Description    (Table 0043)
  3729.  0    video hardware (see #0044)
  3730.  1    BIOS data areas
  3731.  2    color registers and DAC state (see #0045)
  3732.  3-15    unused (0)
  3733.  
  3734. Format of VGA video hardware state:
  3735. Offset    Size    Description    (Table 0044)
  3736.  00h    BYTE    sequencer index register
  3737.  01h    BYTE    CRTC index register
  3738.  02h    BYTE    graphics controller index register
  3739.  03h    BYTE    attribute controller index register
  3740.  04h    BYTE    feature controller register
  3741.  05h  4 BYTEs    sequencer registers
  3742.  09h    BYTE    sequencer register 0
  3743.  0Ah 25 BYTEs    CRTC registers 0-8
  3744.  23h 16 BYTEs    palette registers 00h-0Fh
  3745.  33h  4 BYTEs    attribute registers 10h-13h
  3746.  37h  9 BYTEs    graphics controller registers 0-8
  3747.  40h    BYTE    CRTC base address (low)
  3748.  41h    BYTE    CRTC base address (high)
  3749.  42h    BYTE    plane 0 latch
  3750.  43h    BYTE    plane 1 latch
  3751.  44h    BYTE    plane 2 latch
  3752.  45h    BYTE    plane 3 latch
  3753.  
  3754. Format of VGA DAC state:
  3755. Offset    Size    Description    (Table 0045)
  3756.  00h    BYTE    read/write mode DAC
  3757.  01h    BYTE    pixel address
  3758.  02h    BYTE    pixel mask
  3759.  03h 768 BYTEs    color data (256 triples)
  3760. 303h    BYTE    color select register
  3761. --------J-101D-------------------------------
  3762. INT 10 - VIDEO - DOS/V - SHIFT STATUS LINE CONTROL
  3763.     AH = 1Dh
  3764.     AL = function
  3765.         00h enable shift status line(s)
  3766.         BX = number of lines to reserve at bottom of screen (usu. 1)
  3767.         01h disable shift status line
  3768.         BX = number of lines reserved at bottom of screen (usually 1)
  3769.         02h get number of status lines
  3770.         Return: BX = number of lines reserved for shift status
  3771. SeeAlso: AH=19h
  3772. --------V-101D-------------------------------
  3773. INT 10 - SpeedSTAR Plus BIOS v4.23+ - SET SYNC PARAMETERS
  3774.     AH = 1Dh
  3775.     AL = video mode
  3776.     ES = caller's segment
  3777. Return: nothing
  3778. Note:    the caller's segment contains at offset 5Ch (FCB field in PSP)
  3779.       or 100h a table with sync parameters (see #0046) (BIOS looks at both
  3780.       offsets)
  3781.  
  3782. Format of SpeedSTAR Plus sync table:
  3783. Offset    Size    Description    (Table 0046)
  3784.  00h  9 BYTEs    ID contains string 'ey5CENTER'
  3785.  09h  5 BYTEs    sync parameters for 640x480 modes 11h,12h,25h,26h,2Eh
  3786.  0Bh  5 BYTEs    sync parameters for 800x600 modes 29h,30h,2Ah
  3787.  13h  5 BYTEs    sync parameters for 1024x768 modes 37h,38h
  3788. --------V-101D-------------------------------
  3789. INT 10 - Tseng ET-4000 BIOS v3.00 and v8.00 - BUG
  3790.     AH = 1Dh
  3791. Note:    these versions of the BIOS jump to a random location on this function
  3792.       due to a fencepost error
  3793. --------V-101DAABXFDEC-----------------------
  3794. INT 10 U - Diamond Stealth64 Video - INSTALLATION CHECK
  3795.     AX = 1DAAh
  3796.     BX = FDECh
  3797. Return: BX = CDEFh if Diamond Stealth64 Video 2001-series video card installed
  3798.         AL = number of megabytes of video memory
  3799.         AH = ??? (4Bh/5Bh)
  3800.         CX = ??? (0000h)
  3801.         SI:DI -> signature/copyright string
  3802. --------V-101F00-----------------------------
  3803. INT 10 - VIDEO - XGA - GET DMQS (Display Mode Query and Set) DATA LENGTH
  3804.     AX = 1F00h
  3805. Return: AL = 1Fh if supported
  3806.         BX = number of bytes of DMQS data
  3807. Note:    not supported on the original IBM XGA, only on XGA-NI (non-interlaced)
  3808.       and later models.
  3809. SeeAlso: AX=1F01h
  3810. --------V-101F01-----------------------------
  3811. INT 10 - VIDEO - XGA - READ DMQS DATA
  3812.     AX = 1F01h
  3813.     ES:DI -> user buffer for return data (call AX=1F00h for size)
  3814. Return: AL = 1Fh if function supported
  3815.     user buffer filled with DMQS data (see #0047)
  3816. Note:    not supported on the original IBM XGA, only on XGA-NI (non-interlaced)
  3817.       and later models.
  3818. SeeAlso: AH=1Bh,AX=1F00h,AX=3000h
  3819.  
  3820. Format of XGA DMQS buffer:
  3821. Offset    Size    Description    (Table 0047)
  3822.  00h    WORD    offset (in bytes) to DMQS data for next XGA instance
  3823.  02h    BYTE    slot number
  3824.  03h    BYTE    XGA implementation function level identifier
  3825.  04h    BYTE    XGA implementation resolution level identifier
  3826.  05h    WORD    vendor identifier - identifies card vendor
  3827.  07h    WORD    vendor defined field
  3828.  09h    WORD    XGA adapter I/O register base address
  3829.  0Bh    WORD    XGA coprocessor register base address
  3830.         (paragraph--multiply by 10h to get physical address)
  3831.  0Dh    WORD    1 Megabyte system video memory aperture
  3832.         0000h if not allocated
  3833.         (Multiply by 100000h to get physical address)
  3834.  0Fh    WORD    4 Megabyte system video memory aperture
  3835.         0000h if not allocated
  3836.         (multiply by 100000h to get physical address)
  3837.  11h    WORD    video memory base address
  3838.         (multiply by 100000h to get physical address)
  3839.  13h    WORD    composite ID of the attached display
  3840.  15h    BYTE    amount of video memory available, in multiples of 256K bytes
  3841.  16h    DWORD    alternate XGA coprocessor register base address.  0 = none.
  3842.  1Ah    var    DMQS Data for further XGA Instances (as above)
  3843. Note:    "Instances" refers to the capability of having up to 8 XGA
  3844.       adapters in one computer.
  3845. --------V-103000CX0000-----------------------
  3846. INT 10 - VIDEO - LOCATE 3270PC CONFIGURATION TABLE (INSTALLATION CHECK)
  3847.     AX = 3000h
  3848.     CX = 0000h
  3849.     DX = 0000h
  3850. Return: CX:DX -> 3270PC configuration table (see #0048)
  3851.     CX:DX = 0000h:0000h if 3270PC Control Program not active
  3852. SeeAlso: AX=1F01h
  3853.  
  3854. Format of 3270 PC configuration table:
  3855. Offset    Size    Description    (Table 0048)
  3856.  00h    BYTE    aspect ratio X
  3857.  01h    BYTE    aspect ratio Y
  3858.  02h    BYTE    monitor type (see #0049)
  3859.  03h    BYTE    reserved
  3860.  04h    BYTE    adapter ID
  3861.         00h = 5151/5272 adapter
  3862.         04h = 5151/5272 with XGA adapter
  3863.         30h = 3295 or 3270PC G/GX adapter
  3864.  05h    BYTE    reserved
  3865.  06h    BYTE    function flags 1 (see #0050)
  3866.  07h    BYTE    function flags 2
  3867.         bit 6: GPI graphics supported
  3868.  08h    WORD    segment address of Control Program Level table (see #0051)
  3869.  0Ah 10 BYTEs    reserved
  3870.  
  3871. (Table 0049)
  3872. Values for 3270 PC monitor type:
  3873.  00h    5151 (mono) or 5272 (color)
  3874.  01h    3295
  3875.  02h    5151 or 5272 with XGA (???) graphics adapter
  3876.  03h    5279 with 3270PC G adapter
  3877.  04h    5379 model C01 with 3270PC GX adapter
  3878.  05h    5379 model M01 with 3270PC GX adapter
  3879.  07h    non-3270PC with 3270 Workstation Program
  3880.  FFh    3270PC Control Program not loaded
  3881.  
  3882. Bitfields for 3270 PC function flags 1:
  3883. Bit(s)    Description    (Table 0050)
  3884.  7    mono text, 1 page
  3885.  6    color text, 1 page
  3886.  5    color text, 4 pages
  3887.  4    CGA color graphics
  3888.  3    720x350 two-color graphics
  3889.  2    360x350 four-color graphics
  3890.  1    720x350 eight-color graphics
  3891.  
  3892. Format of Control Program Level table:
  3893. Offset    Size    Description    (Table 0051)
  3894.  00h    WORD    program version
  3895.         02xxh = 3270PC Control Program v2.xx
  3896.         03xxh = 3270PC Control Program v3.xx
  3897.         04xxh = 3270 Workstation Program v1.xx
  3898.  02h    BYTE    Control Program ID (00h)
  3899.  03h 27 BYTEs    Control Program Descriptor ("IBM 3270 PC CONTROL PROGRAM")
  3900. --------a-103800-----------------------------
  3901. INT 10 - Tinytalk Personal v1.09f+ - GET CONFIGURATION INFO
  3902.     AX = 3800h
  3903. Return: ES:DI -> configuration info (see #0052)
  3904. Program: Tinytalk is a shareware screen reader by OMS Development/Eric Bohlman
  3905. Notes:    this call is also used as the installation check by verifying that the
  3906.       returned ES:DI points at valid configuration info
  3907.     Tinytalk v1.09f ignores AL and always returns the configuration info;
  3908.       v1.10 adds several subfunctions selected with AL
  3909. SeeAlso: AX=3801h,AX=3803h,AX=3806h,AH=39h,INT 14/AX=F0F1h
  3910. SeeAlso: INT 2F/AX=FB00h"AutoBraille"
  3911. Index:    installation check;Tinytalk Personal
  3912.  
  3913. Format of Tinytalk Personal configuration info:
  3914. Offset    Size    Description    (Table 0052)
  3915.  00h  8 BYTEs    signature "TTCONFIG"
  3916.  08h    WORD    size of configuration data, not counting signature, this WORD,
  3917.           or the following byte
  3918.  0Ah    BYTE    ???
  3919.  0Bh    ???    configuration data
  3920. --------a-103801-----------------------------
  3921. INT 10 - Tinytalk Personal v1.10 - ???
  3922.     AX = 3801h
  3923.     DL = ???
  3924. Return: ???
  3925. SeeAlso: AX=3800h,AX=3802h
  3926. --------a-103802-----------------------------
  3927. INT 10 - Tinytalk Personal v1.10 - ???
  3928.     AX = 3802h
  3929.     DL = ???
  3930. Return: ???
  3931. SeeAlso: AX=3800h,AX=3801h
  3932. --------a-103803-----------------------------
  3933. INT 10 - Tinytalk Personal v1.10 - GET ???
  3934.     AX = 3803h
  3935. Return: AL = ???
  3936. SeeAlso: AX=3800h,AX=3804h,AX=3805h
  3937. --------a-103804-----------------------------
  3938. INT 10 - Tinytalk Personal v1.10 - GET ???
  3939.     AX = 3804h
  3940. Return: AX = ???
  3941. SeeAlso: AX=3800h,AX=3803h,AX=3805h
  3942. --------a-103805-----------------------------
  3943. INT 10 - Tinytalk Personal v1.10 - GET ???
  3944.     AX = 3805h
  3945. Return: AL = ???
  3946. SeeAlso: AX=3800h,AX=3803h,AX=3804h
  3947. --------a-103806-----------------------------
  3948. INT 10 - Tinytalk Personal v1.10 - ???
  3949.     AX = 3806h
  3950.     ES:DX -> ASCIZ ???
  3951. Return: ???
  3952. SeeAlso: AX=3800h
  3953. --------a-1039-------------------------------
  3954. INT 10 - Tinytalk Personal v1.10 - ???
  3955.     AH = 39h
  3956. Program: Tinytalk is a shareware screen reader by OMS Development/Eric Bohlman
  3957. Note:    this function was a NOP in TTDEMO.EXE, but may be implemented in other
  3958.       variants of Tinytalk
  3959. --------V-1040-------------------------------
  3960. INT 10 - VIDEO - SET GRAPHICS MODE (Hercules GRAFIX)
  3961.     AH = 40h
  3962. Return: nothing
  3963. Desc:    switch the Hercules Graphics Card into graphics mode (720x348)
  3964. SeeAlso: AH=00h,AH=41h
  3965. Index:    video modes;Hercules
  3966. --------V-1041-------------------------------
  3967. INT 10 - VIDEO - SET TEXT MODE (Hercules GRAFIX)
  3968.     AH = 41h
  3969. Return: nothing
  3970. Desc:    switch the Hercules Graphics Card into text mode
  3971. SeeAlso: AH=00h,AH=40h
  3972. Index:    video modes;Hercules
  3973. --------V-1042-------------------------------
  3974. INT 10 - VIDEO - CLEAR CURRENT PAGE (Hercules GRAFIX)
  3975.     AH = 42h
  3976. Return: nothing
  3977. SeeAlso: AH=45h
  3978. --------V-1043-------------------------------
  3979. INT 10 - VIDEO - SELECT DRAWING PAGE (Hercules GRAFIX)
  3980.     AH = 43h
  3981.     AL = page number (0,1)
  3982. Return: nothing
  3983. Desc:    specify which of the two pages of video memory is to be used for
  3984.       output
  3985. SeeAlso: AH=05h,AH=44h,AH=45h
  3986. --------V-1044-------------------------------
  3987. INT 10 - VIDEO - SELECT DRAWING FUNCTION (Hercules GRAFIX)
  3988.     AH = 44h
  3989.     AL = drawing function
  3990.         00h clear pixels
  3991.         01h set pixels
  3992.         02h invert pixels
  3993. Return: nothing
  3994. Desc:    specify how graphics output will change the display
  3995. SeeAlso: AH=45h,AH=46h,AH=4Ch,AH=4Dh
  3996. --------V-1045-------------------------------
  3997. INT 10 - VIDEO - SELECT PAGE TO DISPLAY (Hercules GRAFIX)
  3998.     AH = 45h
  3999.     AL = page number (0,1)
  4000. Return: nothing
  4001. Desc:    specify which of the two pages of video memory is visible on screen
  4002. SeeAlso: AH=05h,AH=42h,AH=43h
  4003. --------V-1046-------------------------------
  4004. INT 10 - VIDEO - DRAW ONE PIXEL (Hercules GRAFIX)
  4005.     AH = 46h
  4006.     DI = x (0-719)
  4007.     BP = y (0-347)
  4008. Return: nothing
  4009. Note:    function 44h determines operation and function 43h which page to use
  4010. SeeAlso: AH=0Ch,AH=47h,AH=49h,AH=4Ch,AH=4Dh
  4011. --------V-1047-------------------------------
  4012. INT 10 - VIDEO - FIND PIXEL VALUE (Hercules GRAFIX)
  4013.     AH = 47h
  4014.     DI = x (0-719)
  4015.     BP = y (0-347)
  4016. Return: AL = 00h pixel clear
  4017.     AL = 01h pixel set
  4018. Note:    function 43h specifies which page is used
  4019. SeeAlso: AH=0Dh,AH=46h
  4020. --------V-1048-------------------------------
  4021. INT 10 - VIDEO - MOVE TO POINT (Hercules GRAFIX)
  4022.     AH = 48h
  4023.     DI = x (0-719)
  4024.     BP = y (0-347)
  4025. Return: nothing
  4026. Desc:    specify the location from which to start the next graphics output
  4027. SeeAlso: AH=49h
  4028. --------V-1049-------------------------------
  4029. INT 10 - VIDEO - DRAW TO POINT (Hercules GRAFIX)
  4030.     AH = 49h
  4031.     DI = x (0-719)
  4032.     BP = y (0-347)
  4033. Return: nothing
  4034. Note:    function 48h or 49h specify first point, 44h operation and 43h page to
  4035.       use
  4036. SeeAlso: AH=43h,AH=44h,AH=48h,AH=4Ch,AH=4Dh
  4037. --------V-104A-------------------------------
  4038. INT 10 - VIDEO - BLOCK FILL (Hercules GRAFIX)
  4039.     AH = 4Ah
  4040.     DI = x coordinate of lower left corner
  4041.     BP = y coordinate of lower left corner
  4042.     BX = height in pixels
  4043.     CX = width in pixels
  4044. Return: nothing
  4045. Desc:    draw a solid rectangle of the specified size at the given location
  4046. SeeAlso: AH=4Eh
  4047. --------V-104B-------------------------------
  4048. INT 10 - VIDEO - DISPLAY CHARACTER (Hercules GRAFIX)
  4049.     AH = 4Bh
  4050.     AL = character to display
  4051.     DI = x (0-719)
  4052.     BP = y (0-347)
  4053. Return: nothing
  4054. Note:    unlike the other BIOS character functions character position is
  4055.       specified in pixels rather than rows and columns
  4056. SeeAlso: AH=09h,AH=0Ah
  4057. --------P-104B-------------------------------
  4058. INT 10 - FRIEZE - API
  4059.     AH = 4Bh
  4060.     CL = function
  4061.         00h (v6.x-) print window
  4062.         AL = mode
  4063.             00h character
  4064.             01h normal
  4065.             02h sideways
  4066.         01h load window
  4067.         ES:BX -> ASCIZ filename from which to read
  4068.         02h save window
  4069.         ES:BX -> ASCIZ filename to which to write
  4070.         03h set print width
  4071.         AL = width in 1/4 inches
  4072.         04h set print height
  4073.         AL = height in 1/4 inches
  4074.         05h reserved
  4075.         06h set left margin
  4076.         AL = printout margin in 1/4 inches
  4077.         07h set window size
  4078.         ES:BX -> four-WORD structure with Xmin, Ymin, Xmax, Ymax
  4079.         08h reserved
  4080.         09h set patterns
  4081.         ES:BX -> 16-BYTE vector of screen->printer color correspondnces
  4082.         0Ah get patterns
  4083.         ES:BX -> 16-BYTE buffer for color correspondences
  4084.         0Bh set mode
  4085.         AL = mode
  4086.         0Ch (v7.41) ???
  4087.         AL = ???
  4088.             00h ??? (calls original INT 05)
  4089.             else ???
  4090.         0Dh (v7.41) ???
  4091.         AL = ???
  4092.             00h ??? (calls original INT 05)
  4093.             else ???
  4094.         0Eh (v7.41) ???
  4095.         ???
  4096.         0Fh get window
  4097.         ES:BX -> four-WORD buffer for Xmin, Ymin, Xmax, Ymax
  4098.         10h set print options
  4099.         ES:BX -> printer options in same format as FRIEZE cmdline
  4100.         11h initialize
  4101.         ES:BX -> three-WORD array from CARDS.DAT for HRes, VRes, code
  4102.         12h (v7.41) ???
  4103.         ???
  4104.         13h (v7.41) ???
  4105.         ???
  4106.         14h get version
  4107.         Return: AH = major version (00h if FRIEZE version before 7)
  4108.             AL = minor version
  4109.         15h set parameters
  4110.         ES:BX -> parameter table (see #0054)
  4111.         16h get parameters
  4112.         ES:BX -> buffer for parameter table (see #0054)
  4113.         17h get printer resolution
  4114.         ES:BX -> 12-WORD table for six horizontal/vertical resol pairs
  4115.         18h (v8.0 only) reserved
  4116.         50h (v7.41) get ???
  4117.         Return: AX = ???
  4118.         51h (v7.41) get ???
  4119.         Return: ES = ??? (seen 2348h)
  4120.             AX = ??? (seen 8432h)
  4121. Return: AX = status (see #0053)
  4122. SeeAlso: AH=0Fh/SI=F123h
  4123.  
  4124. (Table 0053)
  4125. Values for FRIEZE function status:
  4126.  00h    successful
  4127.  01h    user aborted printout with ESC
  4128.  02h    reserved
  4129.  03h    file read error
  4130.  04h    file write error or printer error
  4131.  05h    file not found
  4132.  06h    invalid header (not an image or wrong screen mode) or can't create file
  4133.  07h    file close error
  4134.  08h    disk error
  4135.  09h    (v7.0+) printer error
  4136.  0Ah    invalid function
  4137.  0Bh    (v7.0+) can't create file
  4138.  0Ch    (v7.0+) wrong video mode
  4139.  
  4140. Format of FRIEZE parameter table:
  4141. Offset    Size    Description    (Table 0054)
  4142.  00h    WORD    top margin (1/100 inch)
  4143.  02h    WORD    left margin (1/100 inch)
  4144.  04h    WORD    horizontal size (1/100 inch)
  4145.  06h    WORD    vertical size (1/100 inch)
  4146.  08h    WORD    quality/draft mode
  4147.         00h draft mode
  4148.         01h quality mode
  4149.         02h use horizontal/vertical resolution for output resolution
  4150.  0Ah    WORD    printer horizontal resolution (dots per inch)
  4151.  0Ch    WORD    printer vertical resolution (dots per inch)
  4152.  0Eh    WORD    reserved (FFFFh)
  4153. Note:    any field which should remain unchanged may be filled with FFFFh
  4154. --------V-104C-------------------------------
  4155. INT 10 - VIDEO - DRAW ARC (Hercules GRAFIX)
  4156.     AH = 4Ch
  4157.     AL = quadrant (1 = upper right, 2 = upper left, etc)
  4158.     DI = x coordinate of center
  4159.     BP = y coordinate of center
  4160.     BX = radius
  4161. Return: nothing
  4162. SeeAlso: AH=49h,AH=4Dh
  4163. --------V-104D-------------------------------
  4164. INT 10 - VIDEO - DRAW CIRCLE (Hercules GRAFIX)
  4165.     AH = 4Dh
  4166.     DI = x of center
  4167.     BP = y of center
  4168.     BX = radius
  4169. Return: nothing
  4170. SeeAlso: AH=49h,AH=4Ch
  4171. --------V-104E-------------------------------
  4172. INT 10 - VIDEO - FILL AREA (Hercules GRAFIX)
  4173.     AH = 4Eh
  4174.     DI = x coordinate of an interior point
  4175.     BP = y coordinate of an interior point
  4176. Return: nothing
  4177. Desc:    fill a convex polygonal area bounded by a contiguous line of the
  4178.       opposite color with the border color
  4179. Note:    the first fill makes the figure solid, the second erases it
  4180. SeeAlso: AH=4Ah
  4181. --------V-104E00-----------------------------
  4182. INT 10 - VESA XGA BIOS Extensions - GET XGA ENVIRONMENT INFORMATION
  4183.     AX = 4E00h
  4184.     ES:DI -> 256-byte buffer for XGA information (see #0055)
  4185. Return: AL = 4Eh if function supported
  4186.         AH = status
  4187.         00h successful
  4188.         else error code
  4189. Desc:    determine whether VESA XGA extensions are present and the capabilities
  4190.       supported by the display adapter
  4191. SeeAlso: AX=4E01h,AX=4E02h,AX=4F00h
  4192. Index:    installation check;VESA XGA
  4193.  
  4194. Format of XGA information buffer:
  4195. Offset    Size    Description    (Table 0055)
  4196.  00h  4 BYTEs    signature ("VESA")
  4197.  04h    WORD    VESA version number
  4198.  06h    DWORD    pointer to ASCIZ OEM string
  4199.  0Ah    DWORD    environment flags (see #0056)
  4200.  0Eh    WORD    number of XGA adapters installed (other VESA XGA functions
  4201.           require a handle indicating which adapter to use)
  4202.  10h 240 BYTEs    reserved
  4203.  
  4204. Bitfields for XGA environment flags:
  4205. Bit(s)    Description    (Table 0056)
  4206.  0-1    system bus (00 = MCA, 01 = ISA, 10 = EISA)
  4207.  2    bus mastering available
  4208.  3-31    reserved
  4209. --------V-104E01----------------------------
  4210. INT 10 - VESA XGA BIOS Extensions - RETURN XGA SUBSYSTEM INFORMATION
  4211.     AX = 4E01h
  4212.     DX = XGA handle (0 to number of XGAs-1)
  4213.     ES:DI -> 256-byte buffer for subsystem information (see #0057)
  4214. Return: AL = 4Eh if function supported
  4215.     AH = status
  4216.         00h     function successful
  4217.         else error code
  4218. SeeAlso: AX=4E00h,AX=4E02h
  4219.  
  4220. Format of XGA subsystem information:
  4221. Offset    Size    Description    (Table 0057)
  4222.  00h    DWORD    pointer to null-terminated board OEM string
  4223.  04h    DWORD    capabilities (see #0058)
  4224.  08h    DWORD    pointer to 8KB XGA ROM (or NULL)
  4225.  0Ch    DWORD    pointer to the XGA memory mapped registers
  4226.  10h    WORD    base address of XGA I/O registers (21x0h)
  4227.  12h    DWORD    pointer to start of physical video memory
  4228.         (A000h:0000h or B000h:0000h)
  4229.  16h    DWORD    physical address of 4MB aperture (or NULL if none)
  4230.  1Ah    DWORD    physical address of 1MB aperture (or NULL if none)
  4231.  1Eh    DWORD    physical address of 64KB aperture (or NULL if not enabled)
  4232.  22h    DWORD    physical address of OEM aperture (or NULL if none)
  4233.  26h    WORD    size of OEM aperture in 64KByte units
  4234.  28h    DWORD    pointer to list of video modes
  4235.         The list is a series of WORDs terminated by FFFFh
  4236.  2Ch    WORD    number of 64KB blocks on the board
  4237.  2Eh    DWORD    XGA manufacturer ID
  4238.         byte 0 POS data index 1
  4239.         byte 1 is index 2
  4240.         byte 2 is 21xAh index 75h
  4241.  32h 206 BYTEs    reserved
  4242.  
  4243. Bitfields for XGA capabilities:
  4244. Bit(s)    Description    (Table 0058)
  4245.  0-1    board bus architecture: 0=MCA, 1=ISA, 3=EISA
  4246.  2-3    reserved
  4247.  4-6    DMA Channel assigned for acquiring bus mastership (only for ISA bus)
  4248.  7    DMA Channel Status (ISA only). enabled if set
  4249.  8-31    reserved
  4250. --------V-104E02-----------------------------------
  4251. INT 10 - VESA XGA BIOS Extensions - RETURN XGA MODE INFORMATION
  4252.     AX = 4E02h
  4253.     CX = Video mode
  4254.     DX = XGA handle
  4255.     ES:DI -> 256 byte buffer for mode information (see #0059)
  4256. Return: AL = 4Eh if function supported
  4257.     AH = status
  4258.         00h     function successful
  4259.         else error code
  4260. SeeAlso: AX=4E00h,AX=4E01h
  4261.  
  4262. Format of XGA mode information:
  4263. Offset    Size    Description    (Table 0059)
  4264.  00h    WORD    attributes of the mode (see #0060)
  4265.  02h    WORD    bytes per logical scanline
  4266.  04h    WORD    horizontal resolution in pixels
  4267.  06h    WORD    vertical resolution in scanlines
  4268.  08h    BYTE    character Width in pixels
  4269.  09h    BYTE    character Height in pixels
  4270.  0Ah    BYTE    number of planes
  4271.  0Bh    BYTE    bits per pixels
  4272.  0Ch    BYTE    memory model (see #0061)
  4273.  0Dh    BYTE    number of Image Pages
  4274.  0Eh    BYTE    number of Red bits
  4275.  0Fh    BYTE    bit position of Red bit field
  4276.  10h    BYTE    number of Green bits
  4277.  11h    BYTE    bit position of Green bit field
  4278.  12h    BYTE    number of Blue bits
  4279.  13h    BYTE    bit position of Blue bit field
  4280.  14h    BYTE    number of Reserved bits
  4281.  15h    BYTE    bit position of Reserved bit field
  4282.  16h 235 BYTEs    reserved
  4283.  
  4284. Bitfields for XGA mode attributes:
  4285. Bit(s)    Description    (Table 0060)
  4286.  0    set if mode is supported
  4287.  1    reserved
  4288.  2    output is supported by the BIOS
  4289.  3    reserved
  4290.  4    if set this is a graphics mode (VGA registers inactive, XGA active),
  4291.       if clear this is a text mode (VGA registers active, XGA inactive)
  4292.  
  4293. (Table 0061)
  4294. Values for XGA video memory model:
  4295.  00h    Text Mode
  4296.  01h    CGA graphics
  4297.  02h    Hercules graphics
  4298.  03h    4-planar graphics
  4299.  04h    Packed Pixel
  4300.  05h    Non-chain 4, 256 color
  4301.  06h    Direct Color
  4302.  07h    YUV-24
  4303. --------V-104E03-----------------------------------
  4304. INT 10 - VESA XGA BIOS Extensions - SET XGA VIDEO MODE
  4305.     AX = 4E03h
  4306.     BX = video mode
  4307.     CX = other command flags
  4308.          bit 0  If clear the feature connector is set to the default state
  4309.     DX = XGA handle
  4310.     ES:DI -> 256 byte buffer
  4311. Return: AL = 4Eh if function supported
  4312.     AH = status
  4313.         00h     function successful
  4314.         else error code
  4315. SeeAlso: AH=00h,AX=4E04h,AX=4F02h
  4316. --------V-104E04-----------------------------------
  4317. INT 10 - VESA XGA BIOS Extensions - RETURN CURRENT VIDEO MODE
  4318.     AX = 4E04h
  4319.     DX = XGA handle
  4320. Return: AL = 4Eh if function supported
  4321.     AH = status
  4322.         00h     function successful
  4323.         BX??? = current mode
  4324.         else error code
  4325. SeeAlso: AH=0Fh,AX=4E03h,AX=4F03h
  4326. --------V-104E05-----------------------------------
  4327. INT 10 - VESA XGA BIOS Extensions - SET FEATURE CONNECTOR STATE
  4328.     AX = 4E05h
  4329.     BX = Feature Connector State (see #0062)
  4330.     DX = XGA handle
  4331. Return: AL = 4Eh if function supported
  4332.     AH = status
  4333.         00h     function successful
  4334.         else error code
  4335. SeeAlso: AX=4E00h,AX=4E06h
  4336.  
  4337. Bitfields for XGA Feature Connector State:
  4338. Bit(s)    Description    (Table 0062)
  4339.  0    Feature Connector is enabled
  4340.  1    Feature Connector is in Output Mode rather than Input Mode
  4341.  2-15    reserved (0)
  4342. --------V-104E06-----------------------------------
  4343. INT 10 - VESA XGA BIOS Extensions - RETURN FEATURE CONNECTOR STATE
  4344.     AX = 4E06h
  4345.     DX = XGA handle
  4346. Return: AL = 4Eh if function supported
  4347.     AH = status
  4348.         00h     function successful
  4349.         else error code
  4350.     BX = Feature Connector State (see #0062)
  4351. SeeAlso: AX=4E00h,AX=4E05h
  4352. --------V-104F00-----------------------------
  4353. INT 10 - VESA SuperVGA BIOS (VBE) - GET SuperVGA INFORMATION
  4354.     AX = 4F00h
  4355.     ES:DI -> buffer for SuperVGA information (see #0063)
  4356. Return: AL = 4Fh if function supported
  4357.     AH = status
  4358.         00h successful
  4359.         ES:DI buffer filled
  4360.         01h failed
  4361.         ---VBE v2.0---
  4362.         02h function not supported by current hardware configuration
  4363.         03h function invalid in current video mode
  4364. Desc:    determine whether VESA BIOS extensions are present and the capabilities
  4365.       supported by the display adapter
  4366. SeeAlso: AX=4E00h,AX=4F01h,AX=7F00h"SOLLEX",AX=A00Ch
  4367. Index:    installation check;VESA SuperVGA
  4368.  
  4369. Format of SuperVGA information:
  4370. Offset    Size    Description    (Table 0063)
  4371.  00h  4 BYTEs    (ret) signature ("VESA")
  4372.         (call) VESA 2.0 request signature ("VBE2"), required to receive
  4373.           version 2.0 info
  4374.  04h    WORD    VESA version number (one-digit minor version)
  4375.  06h    DWORD    pointer to OEM name
  4376.         "761295520" for ATI
  4377.  0Ah    DWORD    capabilities flags (see #0064)
  4378.  0Eh    DWORD    pointer to list of supported VESA and OEM video modes
  4379.         (list of words terminated with FFFFh)
  4380.  12h    WORD    total amount of video memory in 64K blocks
  4381. ---VBE v1.x ---
  4382.  14h 236 BYTEs    reserved
  4383. ---VBE v2.0 ---
  4384.  14h    WORD    OEM software version
  4385.  16h    DWORD    pointer to vendor name
  4386.  1Ah    DWORD    pointer to product name
  4387.  1Eh    DWORD    pointer to product revision string
  4388.  22h 222 BYTEs    reserved
  4389. 100h 256 BYTEs    OEM scratchpad
  4390. Notes:    the list of supported video modes is stored in the reserved portion of
  4391.       the SuperVGA information record by some implementations, and it may
  4392.       thus be necessary to either copy the mode list or use a different
  4393.       buffer for all subsequent VESA calls
  4394.     the 1.1 VESA document specifies 242 reserved bytes at the end, so the
  4395.       buffer should be 262 bytes to ensure that it is not overrun; for
  4396.       v2.0, the buffer should be 512 bytes
  4397.     the S3 specific video modes will most likely follow the FFFFh
  4398.       terminator at the end of the standard modes.    A search must then
  4399.       be made to find them, FFFFh will also terminate this second list
  4400.  
  4401. Bitfields for VESA capabilities:
  4402. Bit(s)    Description    (Table 0064)
  4403.  0    DAC can be switched into 8-bit mode
  4404.  1    non-VGA controller
  4405.  2    programmed DAC with blank bit
  4406.  3-31    reserved
  4407. SeeAlso: #0063
  4408. --------V-104F01-----------------------------
  4409. INT 10 - VESA SuperVGA BIOS - GET SuperVGA MODE INFORMATION
  4410.     AX = 4F01h
  4411.     CX = SuperVGA video mode
  4412.     ES:DI -> 256-byte buffer for mode information (see #0065)
  4413. Return: AL = 4Fh if function supported
  4414.     AH = status
  4415.         00h successful
  4416.         ES:DI buffer filled
  4417.         01h failed
  4418. Desc:    determine the attributes of the specified video mode
  4419. SeeAlso: AX=4F00h,AX=4F02h
  4420.  
  4421. Format of VESA SuperVGA mode information:
  4422. Offset    Size    Description    (Table 0065)
  4423.  00h    WORD    mode attributes (see #0066)
  4424.  02h    BYTE    window attributes, window A (see #0067)
  4425.  03h    BYTE    window attributes, window B (see #0067)
  4426.  04h    WORD    window granularity in KB
  4427.  06h    WORD    window size in KB
  4428.  08h    WORD    start segment of window A
  4429.  0Ah    WORD    start segment of window B
  4430.  0Ch    DWORD    -> FAR window positioning function (equivalent to AX=4F05h)
  4431.  10h    WORD    bytes per scan line
  4432. ---remainder is optional for VESA modes in v1.0/1.1, needed for OEM modes---
  4433.  12h    WORD    width in pixels (graphics) or characters (text)
  4434.  14h    WORD    height in pixels (graphics) or characters (text)
  4435.  16h    BYTE    width of character cell in pixels
  4436.  17h    BYTE    height of character cell in pixels
  4437.  18h    BYTE    number of memory planes
  4438.  19h    BYTE    number of bits per pixel
  4439.  1Ah    BYTE    number of banks
  4440.  1Bh    BYTE    memory model type (see #0068)
  4441.  1Ch    BYTE    size of bank in KB
  4442.  1Dh    BYTE    number of image pages
  4443.  1Eh    BYTE    reserved (0)
  4444. ---VBE v1.2+---
  4445.  1Fh    BYTE    red mask size
  4446.  20h    BYTE    red field position
  4447.  21h    BYTE    green mask size
  4448.  22h    BYTE    green field size
  4449.  23h    BYTE    blue mask size
  4450.  24h    BYTE    blue field size
  4451.  25h    BYTE    reserved mask size
  4452.  26h    BYTE    reserved mask position
  4453.  27h    BYTE    direct color mode info
  4454.         bit 0: color ramp is programmable
  4455.         bit 1: bytes in reserved field may be used by application
  4456. ---VBE v2.0 ---
  4457.  28h    DWORD    physical address of linear video buffer
  4458.  2Ch    DWORD    pointer to start of offscreen memory
  4459.  30h    WORD    KB of offscreen memory
  4460.  32h 206 BYTEs    reserved (0)
  4461.  
  4462. Bitfields for VESA SuperVGA mode attributes:
  4463. Bit(s)    Description    (Table 0066)
  4464.  0    mode supported
  4465.  1    optional information available
  4466.  2    BIOS output supported
  4467.  3    set if color, clear if monochrome
  4468.  4    set if graphics mode, clear if text mode
  4469. ---VBE v2.0 ---
  4470.  5    mode is not VGA-compatible
  4471.  6    bank-switched mode not supported
  4472.  7    linear framebuffer mode supported
  4473.  
  4474. Bitfields for VESA SuperVGA window attributes:
  4475. Bit(s)    Description    (Table 0067)
  4476.  0    exists
  4477.  1    readable
  4478.  2    writable
  4479.  3-7    reserved
  4480.  
  4481. (Table 0068)
  4482. Values for VESA SuperVGA memory model type:
  4483.  00h    text
  4484.  01h    CGA graphics
  4485.  02h    HGC graphics
  4486.  03h    16-color (EGA) graphics
  4487.  04h    packed pixel graphics
  4488.  05h    "sequ 256" (non-chain 4) graphics
  4489.  06h    direct color (HiColor, 24-bit color)
  4490.  07h    YUV (luminance-chrominance, also called YIQ)
  4491.  08h-0Fh reserved for VESA
  4492.  10h-FFh OEM memory models
  4493. --------V-104F02-----------------------------
  4494. INT 10 - VESA SuperVGA BIOS - SET SuperVGA VIDEO MODE
  4495.     AX = 4F02h
  4496.     BX = mode (see #0069,#0070)
  4497.         bit 15 set means don't clear video memory
  4498.         bit 14 set means enable linear framebuffer mode (VBE v2.0+)
  4499. Return: AL = 4Fh if function supported
  4500.     AH = status
  4501.         00h successful
  4502.         01h failed
  4503. SeeAlso: AX=4E03h,AX=4F01h,AX=4F03h
  4504.  
  4505. (Table 0069)
  4506. Values for VESA video mode:
  4507.  00h-FFh OEM video modes (see #0009 at AH=00h)
  4508.  100h    640x400x256
  4509.  101h    640x480x256
  4510.  102h    800x600x16
  4511.  103h    800x600x256
  4512.  104h    1024x768x16
  4513.  105h    1024x768x256
  4514.  106h    1280x1024x16
  4515.  107h    1280x1024x256
  4516.  108h    80x60 text
  4517.  109h    132x25 text
  4518.  10Ah    132x43 text
  4519.  10Bh    132x50 text
  4520.  10Ch    132x60 text
  4521. ---VBE v1.2---
  4522.  10Dh    320x200x32K
  4523.  10Eh    320x200x64K
  4524.  10Fh    320x200x16M
  4525.  110h    640x480x32K
  4526.  111h    640x480x64K
  4527.  112h    640x480x16M
  4528.  113h    800x600x32K
  4529.  114h    800x600x64K
  4530.  115h    800x600x16M
  4531.  116h    1024x768x32K
  4532.  117h    1024x768x64K
  4533.  118h    1024x768x16M
  4534.  119h    1280x1024x32K
  4535.  11Ah    1280x1024x64K
  4536.  11Bh    1280x1024x16M
  4537. ---VBE 2.0---
  4538.  120h    1600x1200x256
  4539. 81FFh    special full-memory access mode
  4540. Note:    the special mode 81FFh preserves the contents of the video memory and
  4541.       gives access to all of the memory; VESA recommends that the special
  4542.       mode be a packed-pixel mode
  4543. SeeAlso: #0009,#0010,#0070,#0101
  4544. Index:    video modes;VESA
  4545.  
  4546. (Table 0070)
  4547. Values for S3 OEM video mode:
  4548.  201h    640x480x256
  4549.  202h    800x600x16
  4550.  203h    800x600x256
  4551.  204h    1024x768x16
  4552.  205h    1024x768x256
  4553.  206h    1280x960x16
  4554.  207h    1152x864x256 (Diamond Stealth 64)
  4555.  208h    1280x1024x16
  4556.  20Ah    1152x864x64K (Diamond Stealth 64)
  4557.  211h    640x480x64K (Diamond Stealth 24)
  4558.  211h    640x480x4G  (Diamond Stealth64 Video)
  4559.  212h    640x480x16M (Diamond Stealth 24)
  4560.  301h    640x480x32K
  4561. Note:    these modes are only available on video cards using S3's VESA driver
  4562. SeeAlso: #0069,#0101,#0629
  4563. Index:    video modes;S3
  4564. --------V-104F03-----------------------------
  4565. INT 10 - VESA SuperVGA BIOS - GET CURRENT VIDEO MODE
  4566.     AX = 4F03h
  4567. Return: AL = 4Fh if function supported
  4568.     AH = status
  4569.         00h successful
  4570.         BX = video mode (see #0069,#0070)
  4571.             bit 14: linear frame buffer enabled (VBE v2.0+)
  4572.             bit 15: don't clear video memory
  4573.         01h failed
  4574. SeeAlso: AH=0Fh,AX=4E04h,AX=4F02h
  4575. --------V-104F04-----------------------------
  4576. INT 10 - VESA SuperVGA BIOS - SAVE/RESTORE SuperVGA VIDEO STATE
  4577.     AX = 4F04h
  4578.     DL = subfunction
  4579.         00h get state buffer size
  4580.         Return: BX = number of 64-byte blocks needed
  4581.         01h save video states
  4582.         ES:BX -> buffer
  4583.         02h restore video states
  4584.         ES:BX -> buffer
  4585.     CX = states to save/restore (see #0071)
  4586. Return: AL = 4Fh if function supported
  4587.     AH = status
  4588.         00h successful
  4589.         01h failed
  4590.  
  4591. Bitfields for VESA SuperVGA states to save/restore:
  4592. Bit(s)    Description    (Table 0071)
  4593.  0    video hardware state
  4594.  1    video BIOS data state
  4595.  2    video DAC state
  4596.  3    SuperVGA state
  4597. --------V-104F05-----------------------------
  4598. INT 10 - VESA SuperVGA BIOS - CPU VIDEO MEMORY CONTROL
  4599.     AX = 4F05h
  4600.     BH = subfunction
  4601.         00h select video memory window
  4602.         DX = window address in video memory (in granularity units)
  4603.         01h get video memory window
  4604.         Return: DX = window address in video memory (in gran. units)
  4605.     BL = window number
  4606.         00h window A
  4607.         01h window B
  4608. Return: AL = 4Fh if function supported
  4609.     AH = status
  4610.         00h successful
  4611.         01h failed
  4612. SeeAlso: AX=4F01h,AX=4F06h,AX=4F07h,AX=7000h/BX=0004h
  4613. --------V-104F06-----------------------------
  4614. INT 10 - VESA SuperVGA BIOS v1.1+ - GET/SET LOGICAL SCAN LINE LENGTH (PIXELS)
  4615.     AX = 4F06h
  4616.     BL = subfunction
  4617.         00h set scan line length
  4618.         CX = desired width in pixels
  4619.         01h get scan line length
  4620. Return: AL = 4Fh if function supported
  4621.     AH = status
  4622.         00h successful
  4623.         01h failed
  4624.     BX = bytes per scan line
  4625.     CX = number of pixels per scan line
  4626.     DX = maximum number of scan lines
  4627. Notes:    if the desired width is not achievable, the next larger width will be
  4628.       set
  4629.     the scan line may be wider than the visible area of the screen
  4630.     this function is valid in text modes, provided that pixel values are
  4631.       multiplied by the character cell width/height
  4632. SeeAlso: AX=4F01h,AX=4F05h,AX=4F06h/BL=02h,AX=4F06h/BL=03h,AX=4F07h
  4633. --------V-104F06BL02-------------------------
  4634. INT 10 - VESA SuperVGA BIOS v2.0+ - SET LOGICAL SCAN LINE LENGTH (BYTES)
  4635.     AX = 4F06h
  4636.     BL = 02h
  4637.     CX = desired scanline width in bytes
  4638. Return: AL = 4Fh if function supported
  4639.     AH = status
  4640.         00h successful
  4641.         01h failed
  4642.     BX = bytes per scan line
  4643.     CX = number of pixels per scan line
  4644.     DX = maximum number of scan lines
  4645. Notes:    if the desired width is not achievable, the next larger width will be
  4646.       set
  4647.     the scan line may be wider than the visible area of the screen
  4648.     this function is valid in text modes, provided that pixel values are
  4649.       multiplied by the character cell width/height
  4650. SeeAlso: AX=4F01h,AX=4F05h,AX=4F06h,AX=4F06h/BL=03h,AX=4F07h
  4651. --------V-104F06BL03-------------------------
  4652. INT 10 - VESA SuperVGA BIOS v2.0+ - GET MAXIMUM SCAN LINE LENGTH
  4653.     AX = 4F06h
  4654.     BL = 03h
  4655. Return: AL = 4Fh if function supported
  4656.     AH = status
  4657.         00h successful
  4658.         01h failed
  4659.     BX = maximum bytes per scan line
  4660.     CX = maximum number of pixels per scan line
  4661. Notes:    this function is valid in text modes, provided that pixel values are
  4662.       multiplied by the character cell width/height
  4663. SeeAlso: AX=4F01h,AX=4F05h,AX=4F06h,AX=4F06h/BL=02h,AX=4F07h
  4664. --------V-104F07-----------------------------
  4665. INT 10 - VESA SuperVGA BIOS v1.1+ - GET/SET DISPLAY START
  4666.     AX = 4F07h
  4667.     BL = subfunction
  4668.         00h,80h set display start
  4669.         CX = leftmost displayed pixel in scan line
  4670.         DX = first displayed scan line
  4671.         01h get display start
  4672.         Return: BH = 00h
  4673.             CX = leftmost displayed pixel in scan line
  4674.             DX = first displayed scan line
  4675.     BH = 00h (reserved)
  4676. Return: AL = 4Fh if function supported
  4677.     AH = status
  4678.         00h successful
  4679.         01h failed
  4680. Notes:    this function is valid in text modes, provided that values are
  4681.       multiplied by the character cell width/height
  4682.     subfunction 80h waits until vertical retrace before changing the
  4683.       display start address (VBE v2.0+)
  4684. SeeAlso: AX=4F01h,AX=4F05h,AX=4F06h
  4685. --------V-104F08-----------------------------
  4686. INT 10 - VESA SuperVGA BIOS v1.2+ - GET/SET DAC PALETTE CONTROL
  4687.     AX = 4F08h
  4688.     BL = subfunction
  4689.         00h set DAC palette width
  4690.         BH = desired number of bits per primary color
  4691.         01h get DAC palette width
  4692. Return: AL = 4Fh if function supported
  4693.     AH = status
  4694.         00h successful
  4695.         01h failed
  4696.     BH = current number of bits per primary (06h = standard VGA)
  4697. --------V-104F09-----------------------------
  4698. INT 10 - VESA SuperVGA BIOS v2.0+ - GET/SET PALETTE ENTRIES
  4699.     AX = 4F09h
  4700.     BL = subfunction
  4701.         00h set palette
  4702.         01h get palette
  4703.         02h set secondary palette data
  4704.         03h get secondary palette data
  4705.         80h set palette during vertical retrace
  4706.     CX = number of entries to change
  4707.     DX = starting palette index
  4708.     ES:DI -> palette buffer (see #0072)
  4709. Return: AL = 4Fh if function supported
  4710.     AH = status
  4711.         00h successful
  4712.         01h failed
  4713. SeeAlso: AX=4F0Ah,AX=D000h"S3VBE"
  4714.  
  4715. Format of VESA VBE palette entry:
  4716. Offset    Size    Description    (Table 0072)
  4717.  00h    BYTE    red
  4718.  01h    BYTE    green
  4719.  02h    BYTE    blue
  4720.  03h    BYTE    alpha or alignment byte
  4721. --------V-104F0A-----------------------------
  4722. INT 10 - VESA SuperVGA BIOS v2.0+ - GET PROTECTED-MODE CODE
  4723.     AX = 4F0Ah
  4724.     BX = function to be copied (see #0073)
  4725. Return: AL = 4Fh if function supported
  4726.     AH = status
  4727.         00h successful
  4728.         CX = number of bytes to copy
  4729.         ES:DI -> code for requested function
  4730.         01h failed
  4731. SeeAlso: AX=4F09h,AX=D000h"S3VBE"
  4732.  
  4733. (Table 0073)
  4734. Values for VESA VBE protected-mode function identifiers:
  4735.  0001h    set bank (see AX=4F05h)
  4736.  0002h    set display start (see AX=4F07h)
  4737.  0003h    set palette (see AX=4F09h)
  4738. --------V-104F0B-----------------------------
  4739. INT 10 - VESA SuperVGA BIOS - RESERVED FOR FUTURE SVGA FUNCTIONS
  4740.     AX = 4F0Bh-4F0Fh
  4741. SeeAlso: AX=4F00h
  4742. --------p-104F10BL00-------------------------
  4743. INT 10 - VESA VBE/PM (Power Management) v1.0+ - GET CAPABILITIES
  4744.     AX = 4F10h
  4745.     BL = 00h
  4746.     ES:DI = 0000h:0000h (reserved for future use as pointer to info block)
  4747. Return: AL = 4Fh if function supported (installed)
  4748.     AH = call status
  4749.         00h successful
  4750.         else failed
  4751.     ---if successful---
  4752.     BL = VBE/PM version (bits 7-4: major, bits 3-0: minor)
  4753.     BH = supported states (see #0074)
  4754.     ES:DI unchanged
  4755. Index:    installation check;VESA VBE/Power Management|VESA DPMS
  4756. SeeAlso: AX=4F10h/BL=01h,AX=4F10h/BL=02h
  4757.  
  4758. Bitfields for VESA VBE/PM supported power states:
  4759. Bit(s)    Description    (Table 0074)
  4760.  0    standby
  4761.  1    suspend
  4762.  2    off
  4763.  3    reduced on
  4764. --------p-104F10BL01-------------------------
  4765. INT 10 - VESA VBE/PM (Power Management) v1.0+ - SET DISPLAY POWER STATE
  4766.     AX = 4F10h
  4767.     BL = 01h
  4768.     BH = new state (see #0075)
  4769. Return: AL = 4Fh if function supported
  4770.     AH = call status
  4771.         00h successful
  4772.         else failed
  4773. SeeAlso: AX=4F10h/BL=00h,AX=4F10h/BL=02h,AX=A00Ch
  4774.  
  4775. (Table 0075)
  4776. Values for VESA VBE/PM power state:
  4777.  00h    On
  4778.  01h    standby
  4779.  02h    suspend
  4780.  04h    Off
  4781.  08h    reduced On (for flat screens)
  4782. --------p-104F10BL02-------------------------
  4783. INT 10 - VESA VBE/PM (Power Management) v1.0+ - GET DISPLAY POWER STATE
  4784.     AX = 4F10h
  4785.     BL = 02h
  4786. Return: AL = 4Fh if function supported
  4787.     AH = call status
  4788.         00h successful
  4789.            BH = current power state (see #0075)
  4790.         else failed
  4791. SeeAlso: AX=4F10h/BL=00h,AX=4F10h/BL=01h,AX=A00Dh
  4792. --------V-104F11-----------------------------
  4793. INT 10 - VESA VBE/FP (Flat Panel Interface) - API
  4794.     AX = 4F11h
  4795.     BL = function
  4796.         00h installation check / get capabilities
  4797.     other registers vary by function
  4798. Return: varies by function
  4799. --------V-104F12-----------------------------
  4800. INT 10 - VESA VBE/CI (Cursor Interface) - API
  4801.     AX = 4F12h
  4802.     BL = function
  4803.     other registers vary by function
  4804. Return: varies by function
  4805. SeeAlso: AX=4F4Dh
  4806. --------s-104F13BX0000-----------------------
  4807. INT 10 - VESA VBE/AI (Audio Interface) - INSTALLATION CHECK
  4808.     AX = 4F13h
  4809.     BX = 0000h
  4810. Return: AL = 4Fh if function supported
  4811.         AH = status
  4812.         00h successful
  4813.             BX = version (0010h for 1.00 -- note nonstandard value!)
  4814.         01h failed
  4815. SeeAlso: AX=4F13h/BX=0001h,AX=4F13h/BX=0005h
  4816. --------s-104F13BX0001-----------------------
  4817. INT 10 - VESA VBE/AI (Audio Interface) - LOCATE DEVICE
  4818.     AX = 4F13h
  4819.     BX = 0001h
  4820.     CX = 0000h ???
  4821.     DX = type of device
  4822.         0001h Wave device
  4823.         0002h MIDI device
  4824.         0003h Volume device
  4825. Return: AL = 4Fh if function supported
  4826.     AH = status
  4827.         00h successful
  4828.         CX = handle [returned 1 for DX=1 and 3, and 2 for DX=2]
  4829.         01h failed
  4830. SeeAlso: AX=4F13h/BX=0000h,AX=4F13h/BX=0002h
  4831. --------s-104F13BX0002-----------------------
  4832. INT 10 - VESA VBE/AI (Audio Interface) - QUERY DEVICE
  4833.     AX = 4F13h
  4834.     BX = 0002h
  4835.     CX = handle
  4836.     DX = query
  4837.         0001h return length of GeneralDeviceClass
  4838.         0002h return copy    of GeneralDeviceClass (see #0076)
  4839.         0003h return length of Volume Info Structure
  4840.         0004h return copy    of Volume Info Structure (see #0086)
  4841.         0005h return length of Volume Services Structure
  4842.         0006h return copy    of Volume Services Structure (see #0088)
  4843.         0007h-000Fh reserved
  4844.         0010h-FFFFh device-specific
  4845.     SI:DI -> buffer (functions 0002h,0004h,0006h)
  4846. Return: AL = 4Fh if function supported
  4847.     AH = status
  4848.         00h successful
  4849.         SI:DI = length (functions 1,3,5)
  4850.         SI:DI buffer filled (functions 2,4,6)
  4851.         01h failed
  4852. Note:    functions 0003h to 0006h are only supported for the Volume device
  4853.  
  4854. Format of GeneralDeviceClass structure:
  4855. Offset    Size    Description    (Table 0076)
  4856.  00h    4 BYTEs    name of the structure ("GENI")
  4857.  04h    DWORD    structure length
  4858.  08h    WORD    type of device (1=Wave, 2=MIDI)
  4859.  0Ah    WORD    version of VESA driver support (0100h for 1.00)
  4860.  10h    var    for CX=handle for Wave device:
  4861.             Wave Info structure (see #0077)
  4862.             some bytes ???
  4863.         for CX=handle for MIDI device:
  4864.             MIDI Info Structure (see #0082)
  4865.             first 8 bytes of MIDI Service Structure ???
  4866. SeeAlso: #0086,#0088
  4867.  
  4868. Format of WAVE Info Structure:
  4869. Offset    Size    Description    (Table 0077)
  4870.  00h    4 BYTEs    name of the structure ("WAVI")
  4871.  04h    DWORD    structure length [0000007Eh]
  4872.  08h    DWORD    driver software version [00000003h]
  4873.  0Ch 32 BYTEs    vendor name, etc. (ASCIZ string)
  4874.  2Ch 32 BYTEs    vendor product name
  4875.  4Ch 32 BYTEs    vendor chip/hardware description
  4876.  6Ch    BYTE    installed board number
  4877.  6Dh    3 BYTEs    unused data
  4878.  70h    DWORD    feature bits (see #0078)
  4879.  74h    WORD    user determined preference field
  4880.  76h    WORD    memory required for driver use [0200h]
  4881.  78h    WORD    number of timer tick callbacks per second [0000h]
  4882.  7Ah    WORD    channels: 1 = mono, 2 = stereo
  4883.         stereo is assumed to be interleaved data
  4884.  7Ch    WORD    bitfield of max sample sizes (see #0079)
  4885. SeeAlso: #0082
  4886.  
  4887. Bitfields for Wave feature bits:
  4888. Bit(s)    Description    (Table 0078)
  4889.  0    8000hz Mono Playback
  4890.  1    8000hz Mono Record
  4891.  2    8000hz Stereo Record
  4892.  3    8000hz Stereo Playback
  4893.  4    8000hz Full Duplex Play/Record
  4894.  5    11025hz Mono Playback
  4895.  6    11025hz Mono Record
  4896.  7    11025hz Stereo Record
  4897.  8    11025hz Stereo Playback
  4898.  9    11025hz Full Duplex Play/Record
  4899.  10    22050hz Mono Playback
  4900.  11    22050hz Mono Record
  4901.  12    22050hz Stereo Record
  4902.  13    22050hz Stereo Playback
  4903.  14    22050hz Full Duplex Play/Record
  4904.  15    44100hz Mono Playback
  4905.  16    44100hz Mono Record
  4906.  17    44100hz Stereo Record
  4907.  18    44100hz Stereo Playback
  4908.  19    44100hz Full Duplex Play/Record
  4909.  20-26    reserved (0)
  4910.  27    driver must pre-handle the data
  4911.  28    Variable Sample mono   playback
  4912.  29    Variable Sample stereo playback
  4913.  30    Variable Sample mono   record
  4914.  31    Variable Sample stereo record
  4915.  
  4916. (Table 0079)
  4917. Values for Sample data size:
  4918.  01h    8bit play
  4919.  02h    16bit play
  4920.  10h    8bit record
  4921.  20h    16bit record
  4922.  
  4923. Format of WAVE Audio Services structure:
  4924. Offset    Size    Description    (Table 0080)
  4925.  00h    4 BYTEs    name of the structure
  4926.  04h    DWORD    structure length
  4927.  08h 16 BYTEs    for future expansion
  4928. ---entry points (details???)---
  4929.  18h    DWORD    DeviceCheck
  4930.         11h compression (see also #0081)
  4931.         12h driver state
  4932.         13h get current pos
  4933.         14h sample rate
  4934.         15h set preference
  4935.         16h get DMA,IRQ
  4936.         17h get IO address
  4937.         18h get mem address
  4938.         19h get mem free
  4939.         1Ah full duplex
  4940.         1Bh get block size
  4941.         1Ch get PCM format
  4942.         1Dh enable PCM format
  4943.         80h-.. vendors can add DevChks above 0x80
  4944.  1Ch    DWORD    PCMInfo
  4945.  20h    DWORD    PlayBlock
  4946.  24h    DWORD    PlayCont
  4947.  28h    DWORD    RecordBlock
  4948.  2Ch    DWORD    RecordCont
  4949.  30h    DWORD    PauseIO
  4950.  34h    DWORD    ResumeIO
  4951.  38h    DWORD    StopIO
  4952.  3Ch    DWORD    WavePrepare
  4953.  40h    DWORD    WaveRegister
  4954.  44h    DWORD    GetLastError
  4955.         01h unsupported feature/function
  4956.         02h bad sample rate
  4957.         03h bad block length
  4958.         04h bad block address
  4959.         05h app. missed an IRQ
  4960.         06h don't understand the PCM size/format
  4961.         80h-.. vendors specific errors
  4962.  48h    DWORD    TimerTick
  4963.  4Ch    DWORD    ApplPSyncCB: CallBack: play filled in by the app
  4964.  50h    DWORD    ApplRSyncCB: CallBack: rec filled in by the app
  4965. SeeAlso: #0084,#0088
  4966.  
  4967. (Table 0081)
  4968. Values for type of compression:
  4969.  01h    IMA play
  4970.  02h    ALAW play
  4971.  03h    ULAW play
  4972.  11h    IMA record
  4973.  12h    ALAW record
  4974.  13h    ULAW record
  4975.  
  4976. Format of MIDI Info Structure:
  4977. Offset    Size    Description    (Table 0082)
  4978.  00h    4 BYTEs    name of the structure ("MIDI")
  4979.  04h    DWORD    structure length
  4980.  08h    DWORD    driver software version [00000003h]
  4981.  0Ch 32 BYTEs    vendor name, etc. (ASCIZ string)
  4982.  2Ch 32 BYTEs    vendor product name
  4983.  4Ch 32 BYTEs    vendor chip/hardware description
  4984.  6Ch    BYTE    installed board number
  4985.  6Dh    3 BYTEs    unused data
  4986.  70h 14 BYTEs    the patch library file name [OPL2.BNK 00..]
  4987.  7Eh    DWORD    feature bits (see #0083)
  4988.  80h    WORD    user determined preference field
  4989.  82h    WORD    memory required for driver use
  4990.  84h    WORD    # of timer tick callbacks per second
  4991.  86h    WORD    max # of tones (voices, partials)
  4992. SeeAlso: #0076,#0084,#0086
  4993.  
  4994. Bitfields for MIDI feature bits:
  4995. Bit(s)    Description    (Table 0083)
  4996.  0-3    reserved for GM extensions
  4997.  4    Transmitter/Receiver only
  4998.  5    Patches preloaded
  4999.  6    MIDI receive has time stamp
  5000.  8    MIDI interrupt driven input supported
  5001.  9    MIDI polled input supported
  5002.  10    MIDI remote patches supported
  5003.  
  5004. Format of MIDI Service structure:
  5005. Offset    Size    Description    (Table 0084)
  5006.  00h    4 BYTEs    name of the structure ("MIDS")
  5007.  04h    DWORD    structure length
  5008.  08h 16 WORDs    patches loaded table bit field
  5009.  28h 16 BYTEs    for future expansion
  5010. ---entry points (details???)---
  5011.  38h    DWORD    device check
  5012.         11h return available tones
  5013.         12h return TRUE/FALSE if patch is understood
  5014.         13h set preference
  5015.         14h allow/disallow voice stealing
  5016.         15h get FIFO sizes
  5017.         16h get DMA,IRQ
  5018.         17h get IO address
  5019.         18h get mem address
  5020.         19h get mem free
  5021.         80h-.. vendors can add DevChks above 0x80
  5022.  3Ch    DWORD    global reset
  5023.  40h    DWORD    MIDI msg
  5024.  44h    DWORD    poll MIDI
  5025.  48h    DWORD    preload patch
  5026.  4Ch    DWORD    unload patch
  5027.  50h    DWORD    timer tick
  5028.  54h    DWORD    get last error
  5029.         01h unsupported feature/function
  5030.         02h unknown patch type (see #0085)
  5031.         03h all tones are used
  5032.         04h messages are out of sync
  5033.         05h an incoming patch was incomplete
  5034.         06h an incoming patch couldn't be stored
  5035.         07h had to drop an incoming byte
  5036.         08h driver is failing a patch download
  5037.         80h-.. vendors specific errors
  5038.  58h    DWORD    Patch Block free callback
  5039.  5Ch    DWORD    MIDI byte avail. callback
  5040. SeeAlso: #0080,#0088
  5041.  
  5042. (Table 0085)
  5043. Values for MIDI Registered Patch Types:
  5044.  10h    OPL2
  5045.  11h    OPL3
  5046.  
  5047. Format of Volume Info Structure:
  5048. Offset    Size    Description    (Table 0086)
  5049.  00h  4    BYTEs    name of the structure ("VOLI")
  5050.  04h    DWORD    structure length (00000092h)
  5051.  08h    DWORD    driver software version [00000001h]
  5052.  0Ch 32 BYTEs    vendor name, etc. (ASCIZ string)
  5053.  2Ch 32 BYTEs    vendor product name
  5054.  4Ch 32 BYTEs    vendor chip/hardware description
  5055.  6Ch    BYTE    installed board number (0 for 1st/only board)
  5056.  6Dh  3    BYTEs    unused data (0)
  5057.  70h 24 BYTEs    text name of the mixer channel
  5058.  88h    DWORD    features bits (see #0087)
  5059.  8Ch    WORD    minimum volume setting
  5060.  8Eh    WORD    maximum volume setting
  5061.  90h    WORD    attenuation/gain crossover
  5062. SeeAlso: #0076,#0088
  5063.  
  5064. Bitfields for Volume feature bits:
  5065. Bit(s)    Description    (Table 0087)
  5066.  0    Stereo Volume control available
  5067.  2    Low Pass Filter is available
  5068.  3    High Pass Filter is available
  5069.  4    Parametric Tone Control is available
  5070.  5    selectable output paths
  5071.  8    Azimuth Field positioning supported
  5072.  9    Phi Field positioning supported
  5073.  10-30    unused???
  5074.  31    Master Volume device
  5075.  
  5076. Format of Volume Services Structure:
  5077. Offset    Size    Description    (Table 0088)
  5078.  00h    4 BYTEs    name of the structure ("VOLS")
  5079.  04h    DWORD    structure length (00000038h)
  5080.  08h 16 BYTEs    16 bytes for future expansion (0)
  5081. ---entry points (details???)---
  5082.  18h    DWORD    device check
  5083.         0011h filter range
  5084.         0012h filter setting
  5085.         0013h filter current
  5086.         0014h tone range
  5087.         0015h tone setting
  5088.         0016h tone current
  5089.         0017h path
  5090.         0018h get IO address
  5091.         0080h-.. vendors can add DevChks above 0x80
  5092.  1Ch    DWORD    set vol to an absolute setting
  5093.         01h User master volume setting
  5094.         02h application master volume setting
  5095.  20h    DWORD    set 3D volume
  5096.  24h    DWORD    tone control
  5097.  28h    DWORD    filter control
  5098.  2Ch    DWORD    output path
  5099.  30h    DWORD    reset channel
  5100.  34h    DWORD    get last error
  5101.         01h unsupported feature/function
  5102.         02h out of range parameter value
  5103.         80h+ vendor-specific errors
  5104. SeeAlso: #0080,#0084
  5105. --------s-104F13BX0003-----------------------
  5106. INT 10 - VESA VBE/AI (Audio Interface) - OPEN DEVICE
  5107.     AX = 4F13h
  5108.     BX = 0003h
  5109.     CX = handle
  5110.     DX = API set (16/32-bit)
  5111.     SI = segment ???
  5112. Return: AL = 4Fh if function supported
  5113.     AH = status
  5114.         00h successful
  5115.         SI:CX -> memory ???
  5116.         01h failed
  5117. SeeAlso: AX=4F13h/BX=0000h,AX=4F13h/BX=0002h,AX=4F13h/BX=0004h
  5118. --------s-104F13BX0004-----------------------
  5119. INT 10 - VESA VBE/AI (Audio Interface) - CLOSE DEVICE
  5120.     AX = 4F13h
  5121.     BX = 0004h
  5122.     CX = handle
  5123. Return: AL = 4Fh if function supported
  5124.     AH = status
  5125.         00h successful
  5126.         01h failed
  5127. SeeAlso: AX=4F13h/BX=0000h,AX=4F13h/BX=0003h,AX=4F13h/BX=0005h
  5128. --------s-104F13BX0005-----------------------
  5129. INT 10 - VESA VBE/AI (Audio Interface) - UNINSTALL DRIVER
  5130.     AX = 4F13h
  5131.     BX = 0005h
  5132. Return: AL = 4Fh if function supported
  5133.     AH = status
  5134.         00h successful
  5135.         01h failed
  5136. SeeAlso: AX=4F13h/BX=0000h,AX=4F13h/BX=0006h
  5137. --------s-104F13BX0006-----------------------
  5138. INT 10 - VESA VBE/AI (Audio Interface) - DRIVER CHAIN/UNCHAIN
  5139.     AX = 4F13h
  5140.     BX = 0006h
  5141. Return: AL = 4Fh if function supported
  5142.     AH = status
  5143.         00h successful
  5144.         01h failed
  5145. SeeAlso: AX=4F13h/BX=0000h,AX=4F13h/BX=0005h
  5146. ----------104F14-----------------------------
  5147. INT 10 - VESA OEM Extensions - API
  5148.     AX = 4F14h
  5149.     BL = function
  5150.         00h installation check / get capabilities
  5151.     other registers vary by function
  5152. Return: varies by function
  5153. Note:    this function is provided for OEMs to implement system-specific
  5154.       functionality in a VESA-compatible manner
  5155. ----------104F14-----------------------------
  5156. INT 10 - VESA OEM Extensions - Matrox Millenium (BIOS v2.1)
  5157.     AX = 4F14h
  5158.     BL = function
  5159.         00h installation check / get capabilities
  5160.         ES:DI -> 256-byte buffer for Matrox-specific information
  5161.             (see #0089)
  5162.         Return: ES:DI buffer filled
  5163.         01h ???
  5164.         BH = ???
  5165.         02h ???
  5166.         BH = ??? (bit flags?)
  5167.         03h ???
  5168.         SI = index of ???
  5169.         Return: CL = value of ???
  5170.         04h ???
  5171.         DX = ???
  5172.         Return: CL,EDX destroyed
  5173.         else
  5174.         Return: AX = FFFFh
  5175. Return: AL = 4Fh if function supported
  5176.         AH = status
  5177.         00h successful
  5178.         01h failed
  5179. Note:    this function is provided for OEMs to implement system-specific
  5180.       functionality in a VESA-compatible manner
  5181.  
  5182. Format of Matrox-specific VESA extensions information:
  5183. Offset    Size    Description    (Table 0089)
  5184.  00h  7 BYTEs    signature "VBE/MGA"
  5185.  07h 12 BYTEs    ??? (01h 01h 00h 00h 00h 00h 00h 00h 00h 07h 01h 02h)
  5186.  13h    DWORD    ->
  5187.  17h    DWORD    ->
  5188.  1Bh    DWORD    ->
  5189.  1Fh    DWORD    ->
  5190.  23h    DWORD    ->
  5191.  27h    DWORD    ->
  5192.  2Bh    WORD    ???
  5193.  2Dh    DWORD    ???
  5194.  31h    DWORD    ???
  5195.  35h    WORD    ???
  5196.  37h 201 BYTEs    unused??? (cleared to 00h)
  5197. --------V-104F15BL00-------------------------
  5198. INT 10 - VESA VBE/DC (Display Data Channel) - INSTALLATION CHECK / CAPABILITIES
  5199.     AX = 4F15h
  5200.     BL = 00h
  5201.     ???
  5202. Return: AL = 4Fh if function supported
  5203.         AH = status
  5204.         00h successful
  5205.             ???
  5206.         01h failed
  5207.             ???
  5208. SeeAlso: AX=4F15h/BL=01h,AX=4F15h/BL=02h
  5209. --------V-104F15BL01-------------------------
  5210. INT 10 - VESA VBE/DC (Display Data Channel) - READ EDID
  5211.     AX = 4F15h
  5212.     BL = 01h
  5213.     ???
  5214. Return: AL = 4Fh if function supported
  5215.         AH = status
  5216.         00h successful
  5217.             ???
  5218.         01h failed
  5219. SeeAlso: AX=4F15h/BL=00h,AX=4F15h/BL=02h
  5220. --------V-104F15BL02-------------------------
  5221. INT 10 - VESA VBE/DC (Display Data Channel) - READ VDIF
  5222.     AX = 4F15h
  5223.     BL = 02h
  5224.     ???
  5225. Return: AL = 4Fh if function supported
  5226.         AH = status
  5227.         00h successful
  5228.             ???
  5229.         01h failed
  5230. SeeAlso: AX=4F15h/BL=00h,AX=4F15h/BL=01h
  5231. --------V-104F16-----------------------------
  5232. INT 10 - VESA VBE/GC (Graphics System Configuration) - API
  5233.     AX = 4F16h
  5234.     BL = function
  5235.         00h installation check / get capabilities
  5236.     other registers vary by function
  5237. Return: varies by function
  5238. --------V-104F17-----------------------------
  5239. INT 10 - VESA VBE/AF (Accelerator Functions) - API
  5240.     AX = 4F17h
  5241.     BL = function
  5242.         00h installation check / get capabilities
  5243.     other registers vary by function
  5244. Return: varies by function
  5245. --------V-104F4D-----------------------------
  5246. INT 10 - VESA - VIDEO CURSOR INTERFACE REQUEST
  5247.     AX = 4F4Dh
  5248.     BX = number of bytes available for VCI use
  5249.     DS:0000h -> buffer for VCI
  5250.     ES:DI -> VCI driver callback function
  5251. Return: AL = 4Fh if supported
  5252.         AH = status
  5253.         00h successful
  5254.             BX = number of bytes used by VCI
  5255.             ES:DI -> VCI request handler
  5256.         01h failed
  5257. Desc:    allow the VESA BIOS Extensions to cooperate with a pointing-device
  5258.       (typically mouse) driver
  5259. SeeAlso: AX=4F12h
  5260. --------V-104FDD-----------------------------
  5261. INT 10 - ATI M64VBE.COM - GET RESIDENT SEGMENT
  5262.     AX = 4FDDh
  5263. Return: AX = CS of resident code
  5264. Program: M64VBE is a VESA VBE 2.0 driver TSR for ATI's Mach64 video chip
  5265. SeeAlso: AX=4FFFh/BX=364Dh"M64VBE",INT 60"M64VBE"
  5266. --------V-104FFF-----------------------------
  5267. INT 10 - VESA SuperVGA BIOS - Everex - TURN VESA ON/OFF
  5268.     AX = 4FFFh
  5269.     DL = new state (00h off, 01h on)
  5270. Return: AX = 0000h if successful
  5271. --------V-104FFF-----------------------------
  5272. INT 10 - Diamond Stealth 24 - SET/RESET DUAL DISPLAY MODE
  5273.     AX = 4FFFh
  5274.     BX = dual display mode
  5275.         00h reset
  5276.         01h set dual display, 32KB VGA test
  5277.         02h set dual display, 64KB VGA test
  5278. Return: AX = 4F00h if successful
  5279.         BX = number of scanlines off screen for test mode
  5280. --------V-104FFFBX364D-----------------------
  5281. INT 10 - ATI M64VBE.COM - UNINSTALL
  5282.     AX = 4FFFh
  5283.     BX = 364Dh ('6M')
  5284.     CX = 5634h ('V4')
  5285. Return: AX,DX,DS,ES destroyed
  5286. Program: M64VBE is a VESA VBE 2.0 driver TSR for ATI's Mach64 video chip
  5287. SeeAlso: AX=4FDDh"M64VBE",INT 60"M64VBE"
  5288. --------U-1050-------------------------------
  5289. INT 10 - SCROLOCK.COM - INSTALLATION CHECK
  5290.     AH = 50h
  5291. Return: BX = 1954h if installed
  5292.         AL = 00h if inactive, nonzero if active
  5293. Program: SCROLOCK is a utility supplied with System Enhancement Associates'
  5294.       ARC archiver
  5295. SeeAlso: AH=51h
  5296. --------J-105000-----------------------------
  5297. INT 10 - VIDEO - AX PC - SET SCREEN COUNTRY CODE
  5298.     AX = 5000h
  5299.     BX = country code
  5300.         0001h USA (English), 0051h Japan
  5301. Return: AL = status
  5302.         00h successful
  5303.         01h bad country code
  5304.         02h other error
  5305. SeeAlso: AX=5001h,INT 16/AX=5000h
  5306. --------J-105001-----------------------------
  5307. INT 10 - VIDEO - AX PC - GET SCREEN COUNTRY CODE
  5308.     AX = 5001h
  5309. Return: AL = status
  5310.         00h successful
  5311.         BX = country code
  5312.         02h error
  5313. SeeAlso: AH=00h,AX=5000h,INT 16/AX=5001h,INT 21/AH=38h
  5314. --------V-105049-----------------------------
  5315. INT 10 - VIDEO - SCREENR v1.55+ - API
  5316.     AX = 5049h ('PI')
  5317.     BX = function
  5318.         0000h installation check
  5319.         0001h lock mode
  5320.         0002h unlock mode
  5321.         0003h lock palette
  5322.         0004h unlock palette
  5323. Return: AX = 0000h if installed
  5324.         BX = TSR version (BH=major,BL=minor)
  5325.         CL = mode locking status
  5326.         00h mode not locked
  5327.         01h mode locked: INT 10/AH=00h disabled
  5328.         CH = palette locking status
  5329.         00h palette not locked
  5330.         01h palette locked, the following functions are disabled:
  5331.             AX=1000h, AX=1001h, AX=1002h, AX=1010h, AX=1012h
  5332. Program: SCREENR is a TSR supplied with Patrick Ibbetson's SCREEN display
  5333.       utility.
  5334. Index:    installation check;SCREENR
  5335. --------U-1051-------------------------------
  5336. INT 10 - SCROLOCK.COM - ENABLE/DISABLE
  5337.     AH = 51h
  5338.     AL = state
  5339.         00h disable
  5340.         nonzero enable
  5341. Return: nothing
  5342. Program: SCROLOCK is a utility supplied with System Enhancement Associates'
  5343.       ARC file archiver
  5344. SeeAlso: AH=50h"SCROLOCK"
  5345. --------J-105100-----------------------------
  5346. INT 10 - VIDEO - AX PC - REGISTER EXTERNAL CHARACTER
  5347.     AX = 5100h
  5348.     BH = character width in bits (10h)
  5349.     BL = character height (10h)
  5350.     DX = character code (DH = F0h-F3h, DL=40h-7Eh,80h-FCh)
  5351.     ES:BP -> character bitmap
  5352. Return: AL = status (00h successful, 01h failed)
  5353. SeeAlso: AX=5101h,INT 1F"SYSTEM DATA"
  5354. --------J-105101-----------------------------
  5355. INT 10 - VIDEO - AX PC - READ CHARACTER
  5356.     AX = 5101h
  5357.     BH = character width in bits
  5358.     BL = character height
  5359.     DX = character code (DH = 00h if 8-bit character)
  5360.     ES:BP -> buffer for character bitmap
  5361. Return: AL = status (00h successful, 01h failed)
  5362. SeeAlso: AH=09h,AX=5100h
  5363. --------J-105200-----------------------------
  5364. INT 10 - VIDEO - AX PC - SET VIRTUAL TEXT RAM BUFFER
  5365.     AX = 5200h
  5366.     BX = segment of buffer
  5367. Return: nothing
  5368. SeeAlso: AX=5201h
  5369. --------J-105201-----------------------------
  5370. INT 10 - VIDEO - AX PC - GET VIRTUAL TEXT RAM BUFFER
  5371.     AX = 5201h
  5372. Return: BX = segment of buffer or 0000h if failed
  5373. SeeAlso: AX=8300h,AH=FEh
  5374. ----------1053-------------------------------
  5375. INT 10 - Show Partner F/X v3.6 - START PRESENTATION
  5376.     AH = 53h
  5377.     DS:DX -> ASCIZ name of presentation file (no path, extension forced to
  5378.         .PR2)
  5379. Return: ???
  5380. SeeAlso: AH=55h
  5381. ----------1055-------------------------------
  5382. INT 10 - Show Partner F/X v3.6 - UNINSTALL
  5383.     AH = 55h
  5384. Return: FXSHOW.EXE removed from memory
  5385. SeeAlso: AH=53h
  5386. --------V-105555-----------------------------
  5387. INT 10 - VIDEO - ATI EGA/VGA Wonder Super Switch - INSTALLATION CHECK
  5388.     AX = 5555h
  5389. Return: AX = AAAAh    if installed
  5390.     BX:CX -> ??? routine in SMS.COM resident portion
  5391.           -> data area (see #0090) in VCONFIG
  5392. Program: Super Switch (SMS.COM) is a video mode switch program supplied with
  5393.       ATI EGA Wonder. It also maps video mode 08h to 27h or 23h.
  5394. SeeAlso: INT 10/AH=00h,INT 14/AX=AA01h,INT 2F/AX=6400h
  5395. Index:    screen saver;ATI Wonder SMS.COM
  5396.  
  5397. Format of ATI Super Switch data area:
  5398. Offset    Size    Description    (Table 0090)
  5399.  00h    DWORD    original INT 09 vector
  5400.  04h    DWORD    original INT 10 vector
  5401.  08h    DWORD    original INT 1C vector
  5402.  0Ch    WORD    screen saver state, 0=off, 1=on
  5403.  0Eh    WORD    blanking interval in clock ticks
  5404. --------V-105F00-----------------------------
  5405. INT 10 - Chips & Technologies Extended BIOS - RETURN CHIP INFORMATION
  5406.     AX = 5F00h
  5407. Return: AL = 5Fh function supported
  5408.         BL = chip type (see #0091)
  5409.         BH = video memory size (00h 256KB, 01h 512KB, 02h 1MB)
  5410.         CX = miscellaneous information (see #0092)
  5411. SeeAlso: AX=5F01h
  5412.  
  5413. Bitfields for Chips&Technologies chip type:
  5414. Bit(s)    Description    (Table 0091)
  5415.  7-4    chip type
  5416.     0000: 82c451
  5417.     0001: 82c452
  5418.     0010: 82c455
  5419.     0011: 82c453
  5420.     0101: 82c456
  5421.     0110: 82c457
  5422.     0111: F65520
  5423.     1000: F65530
  5424.     1100: F65535/F65545 ???
  5425.     1101: F65540
  5426.  3-0    revision number
  5427.  
  5428. Bitfields for Chips&Technologies miscellaneous information:
  5429. Bit(s)    Description    (Table 0092)
  5430.  0    DAC size (0=6-bit, 1=8-bit)
  5431.  1    system type (0=PC/AT, 1=PS/2)
  5432.  2    extended text modes supported by BIOS
  5433.  3    reserved
  5434.  4    extended graphics modes supported by BIOS
  5435.  5    reserved
  5436.  6    BIOS supports graphics cursor
  5437.  7    BIOS supports anti-aliased font
  5438.  8    BIOS supports pre-programmed emulation
  5439.  9    BIOS supports auto emulation
  5440.  10    BIOS supports variable mode set at cold boot
  5441.  11    BIOS supports variable mode set on warm boot
  5442.  12    BIOS supports emulation mode set at cold boot
  5443.  13    BIOS supports emulation mode set on warm boot
  5444.  14-15    reserved
  5445. --------V-105F00-----------------------------
  5446. INT 10 - VIDEO - Realtek RTVGA - RETURN CHIP VERSION
  5447.     AX = 5F00h
  5448. Return: AH = 00h, if successful
  5449.     AL = chip version (the same value that VTEST.EXE reads)
  5450.         00h RTG3103???
  5451.         01h RTG31030/RTG3105
  5452.         02h RTG3106???
  5453.         3Fh non-Realtek chip
  5454. BUG:    in v3.C10, AX=5F00h on return due to improper stack restoration code
  5455. SeeAlso: AX=5F01h"RTVGA"
  5456. --------V-105F01-----------------------------
  5457. INT 10 - Chips & Technologies Extended BIOS - SET PREPROGRAMMED EMULATION
  5458.     AX = 5F01h
  5459.     BL = emulation type (see #0093)
  5460. Return: AL = 5Fh if function supported
  5461.         AH = status
  5462.         00h unsuccessful
  5463.         01h successful
  5464. SeeAlso: AX=5F00h,AX=5F02h,AH=FFh"Oak"
  5465.  
  5466. (Table 0093)
  5467. Values for Chips&Technologies emulation type:
  5468.  00h,01h reserved
  5469.  02h    CGA
  5470.  03h    MDA
  5471.  04h    Hercules
  5472.  05h    EGA
  5473.  06h    VGA
  5474. --------V-105F01-----------------------------
  5475. INT 10 - VIDEO - Realtek RTVGA - WRITE RTVGA BIOS STRING TO DESTINATION
  5476.     AX = 5F01h
  5477.     ES:DI -> zero-filled buffer for BIOS ID string
  5478. Return: AH = 00h if successful
  5479.     ES:DI -> ASCII signature "REALTEK VGA BIOS Version 3C.10"
  5480. BUG:    in v3.C10, AX=5F01h on return due to improper stack restoration code
  5481. SeeAlso: AX=5F00h"RTVGA",AX=5F02h"RTVGA"
  5482. --------V-105F02-----------------------------
  5483. INT 10 - Chips & Technologies Extended BIOS - AUTO EMULATION CONTROL
  5484.     AX = 5F02h
  5485.     BL = new state of autmatic emulation (00h enabled, 01h disabled)
  5486. Return: AL = 5Fh if function supported
  5487.         AH = status
  5488.         00h unsuccessful
  5489.         01h successful
  5490. SeeAlso: AX=5F01h,AX=5F03h
  5491. --------V-105F02-----------------------------
  5492. INT 10 - VIDEO - Realtek RTVGA - RETURN RTVGA ON-BOARD MEMORY SIZE
  5493.     AX = 5F02h
  5494. Return: AH = 00h, if successful
  5495.     AL = on-board memory size
  5496.          (00h = 256K, 01h = 512K, 02h = 768K, 03h = 1024K)
  5497. BUG:    in v3.C10, AX=5F02h on return due to improper stack restoration code
  5498. SeeAlso: AX=5F01h"RTVGA",AX=5F03h"RTVGA"
  5499. --------V-105F03-----------------------------
  5500. INT 10 - VIDEO - Realtek RTVGA - SET ???
  5501.     AX = 5F03h
  5502.     BL = 0-3 (???)
  5503. Return: AH = 00h if successful
  5504. BUG:    in v3.C10, AX=5F03h on return due to improper stack restoration code
  5505. SeeAlso: AX=5F02h"RTVGA"
  5506. --------V-105F03BL00-------------------------
  5507. INT 10 - Chips & Technologies Extended BIOS - SET POWER-ON DISPLAY MODE
  5508.     AX = 5F03h
  5509.     BL = 00h
  5510.     CL = display mode
  5511.     CH = mode (see #0094)
  5512. Return: AL = 5Fh if function supported
  5513.         AH = status
  5514.         00h unsuccessful
  5515.         01h successful
  5516. SeeAlso: AX=5F02h,AX=5F03h/BL=01h"Chips",AX=5F90h
  5517.  
  5518. Bitfields for Chips&Technologies display mode:
  5519. Bit(s)    Description    (Table 0094)
  5520.  1-0    scanlines (00 = 200, 01 = 350, 10 = 400)
  5521.  7    persistence (0 reset on next boot, 1 until changed)
  5522. --------V-105F03BL01-------------------------
  5523. INT 10 - Chips & Technologies Extended BIOS - SET POWER-ON EMULATION MODE
  5524.     AX = 5F03h
  5525.     BL = 01h
  5526.     CL = emulation mode (see #0094)
  5527.     CH = permanence
  5528.         bit 7 persistence (0 reset on next boot, 1 until changed)
  5529. Return: AL = 5Fh if function supported
  5530.         AH = status
  5531.         00h unsuccessful
  5532.         01h successful
  5533. SeeAlso: AX=5F02h,AX=5F03h/BL=00h"Chips",AX=5F90h
  5534. --------V-105F10-----------------------------
  5535. INT 10 - Chips & Technologies Extended BIOS - ???
  5536.     AX = 5F10h
  5537.     DX = ???
  5538. Return: DX = ???
  5539. --------V-105F50-----------------------------
  5540. INT 10 - Chips & Technologies Extended BIOS - GET LAPTOP DISPLAY STATUS
  5541.     AX = 5F50h
  5542. Return: DL = display status (see #0095)
  5543. Note:    this call can be used on Toshiba laptops since ~1995 instead of
  5544.       INT 42/AX=7503h which is no longer supported with the F655xx chips
  5545. SeeAlso: INT 42/AX=7503h
  5546.  
  5547. Bitfields for display status:
  5548. Bit(s)    Description    (Table 0095)
  5549.  7-4    always 0 ???
  5550.  3    1: both displays active (bit 1 also set)
  5551.  2    1: normal (monochrome display only), 0: inverse or color
  5552.  1    1: internal display active, 0: external only
  5553.  0    always set ???
  5554. --------V-105F51-----------------------------
  5555. INT 10 - Chips & Technologies Extended BIOS - SET DISPLAY STATUS ???
  5556.     AX = 5F51h
  5557.     BX = ???
  5558. Return: nothing
  5559. --------V-105F5EBL00-------------------------
  5560. INT 10 - Chips & Technologies Extended BIOS - SET ???
  5561.     AX = 5F5Eh
  5562.     BL = 00h or 01h
  5563. Return: nothing
  5564. --------V-105F90-----------------------------
  5565. INT 10 - Chips & Technologies Extended BIOS - GET SUPERVGA STATE BUFFER SIZE
  5566.     AX = 5F90h
  5567.     CX = state mask (see #0096)
  5568. Return: AL = 5Fh if function supported
  5569.         BX = number of 64-byte blocks required
  5570. SeeAlso: AH=1Ch,AX=5F03h,AX=5F91h,AX=5F92h
  5571.  
  5572. Bitfields for Chips&Technologies state mask:
  5573. Bit(s)    Description    (Table 0096)
  5574.  0    video hardware
  5575.  1    BIOS data state
  5576.  2    DAC state
  5577.  15    type (0 all state info, 1 SuperVGA state only)
  5578. --------V-105F91-----------------------------
  5579. INT 10 - Chips & Technologies Extended BIOS - SAVE SUPERVGA STATE
  5580.     AX = 5F91h
  5581.     CX = state mask (see #0096)
  5582.     ES:BX -> save buffer
  5583. Return: AL = 5Fh if function supported
  5584.         buffer at ES:BX filled
  5585. SeeAlso: AH=1Ch,AX=5F03h,AX=5F90h,AX=5F92h
  5586. --------V-105F92-----------------------------
  5587. INT 10 - Chips & Technologies Extended BIOS - RESTORE SUPERVGA STATE
  5588.     AX = 5F92h
  5589.     CX = state mask (see #0096)
  5590.     ES:BX -> previously-filled save buffer
  5591. Return: AL = 5Fh if function supported
  5592. SeeAlso: AH=1Ch,AX=5F03h,AX=5F90h,AX=5F92h
  5593. --------V-1060------------------------------------
  5594. INT 10 - HUNTER 16 - SET GRAPHICS FONT
  5595.     AH = 60h
  5596.     AL = new font
  5597.         bit 7    output characters in reverse video
  5598.         bits 0-6 font number (see #0110 at AH=77h)
  5599. Return: BH = cell width
  5600.     BL = cell height
  5601. Desc:    select the font to use for output in mode 6; this can be used to mix
  5602.       fonts on the screen
  5603. Note:    the Husky Hunter 16 is an 8088-based ruggedized laptop.     Other family
  5604.       members are the Husky Hunter, Husky Hunter 16/80, and Husky Hawk.
  5605. SeeAlso: AH=04h"HUNTER",AH=73h"HUNTER",AH=77h"HUNTER"
  5606. --------V-1061------------------------------------
  5607. INT 10 - HUNTER 16 - MOVE CURSOR TO GRAPHICS CO-ORDINATES
  5608.     AH = 61h
  5609.     CX = column
  5610.     DX = row
  5611. Return: nothing
  5612. Note:    this function is only valid in graphics modes
  5613. SeeAlso: AH=62h
  5614. --------V-1062------------------------------------
  5615. INT 10 - HUNTER 16 - GET CURSOR POSITION IN GRAPHICS CO-ORDINATES
  5616.     AH = 62h
  5617. Return: CX = column
  5618.     DX = row
  5619. Note:    this function is only valid in graphics modes
  5620. SeeAlso: AH=61h
  5621. --------V-1063------------------------------------
  5622. INT 10 - HUNTER 16 - SET CONTRAST
  5623.     AH = 63h
  5624.     AL = contrast (0..127)
  5625. Return: nothing
  5626. Desc:    set the LCD screen contrast to improve visibility
  5627. SeeAlso: AH=64h,AH=75h
  5628. --------V-1064------------------------------------
  5629. INT 10 - HUNTER 16 - SET BACKLIGHT LEVEL
  5630.     AH = 64h
  5631.     AL = level (0..15)
  5632. Return: nothing
  5633. Desc:    set the LCD backlight level to improve visibility in bad lighting
  5634. SeeAlso: AH=63h,AH=65h,AH=74h,AH=78h"HUNTER",INT 15/AH=74h
  5635. --------V-106500----------------------------------
  5636. INT 10 - HUNTER 16 - GET BACKLIGHT TIMEOUT
  5637.     AX = 6500h
  5638. Return: BX = timeout in seconds (0-300)
  5639. Desc:    returns the time after which the backlight will turn off
  5640. SeeAlso: AH=63h,AH=64h,AX=6501h,INT 15/AH=74h
  5641. --------V-106501----------------------------------
  5642. INT 10 - HUNTER 16 - SET BACKLIGHT TIMEOUT
  5643.     AX = 6501h
  5644.     BX = timeout in seconds (0-300)
  5645. Return: nothing
  5646. Desc:    set the idle time after which the backlight will turn off
  5647. SeeAlso: AH=64h,AX=6500h
  5648. --------V-1066------------------------------------
  5649. INT 10 - HUNTER 16 - SPLIT DISPLAY
  5650.     AH = 66h
  5651.     AL = control bits (see #0097)
  5652.     BH = top row of lower section of LCD (0..7)
  5653.     BL = top row of lower section of the virtual screen (0..24)
  5654. Return: nothing
  5655. Desc:    split the LCD screen horizontally into two parts; each part may be
  5656.       individually scrollable or fixed.
  5657. Note:    the Hunter 16 has a 240x64 LCD display which serves as a window into
  5658.       a 640x200 virtual screen
  5659.  
  5660. Bitfields for HUNTER 16 control bits:
  5661. Bit(s)    Description    (Table 0097)
  5662.  0-1    01: no split, 10: allow split
  5663.  2    allow scrolling the upper part
  5664.  3    allow scrolling the lower part
  5665. --------V-106A00BX0000-----------------------
  5666. INT 10 - Direct Graphics Interface Standard (DGIS) - INQUIRE AVAILABLE DEVICES
  5667.     AX = 6A00h
  5668.     BX = 0000h
  5669.     CX = 0000h
  5670.     DX = buffer length (may be 0)
  5671.     ES:DI -> buffer
  5672. Return: BX = number of bytes stored in buffer
  5673.     CX = bytes required for all descriptions (0 if no DGIS)
  5674. Note:    buffer contains descriptions and addresses of DGIS-compatible
  5675.       display(s) and printer(s)
  5676. SeeAlso: AX=6A02h
  5677. --------V-106A01CX0000-----------------------
  5678. INT 10 - Direct Graphics Interface Standard (DGIS) - REDIRECT CHARACTER OUTPUT
  5679.     AX = 6A01h
  5680.     CX = 0000h
  5681.     ES:DI = address of device to send INT 10 output to
  5682. Return: CX = 0000h  output could not be redirected
  5683.          else INT 10h output now routed to requested display
  5684. SeeAlso: AX=6A02h
  5685. --------V-106A02-----------------------------
  5686. INT 10 - DGIS - INQUIRE INT 10 OUTPUT DEVICE
  5687.     AX = 6A02h
  5688.     ES:DI = 0000h:0000h
  5689. Return: ES:DI = 0000h:0000h  if current display is non-DGIS
  5690.         else address of the current DGIS INT 10 display
  5691. SeeAlso: AX=6A00h,AX=6A01h
  5692. --------V-106D74-----------------------------
  5693. INT 10 - MTRFONTS - INSTALLATION CHECK
  5694.     AX = 6D74h ('mt')
  5695.     DS:0104h = signature "MtRfOnTs"
  5696. Return: AX = 4D54h ('MT') if installed
  5697.         ES = PSP segment of resident code
  5698. Program: MTRFONTS is a shareware TSR (part of the MTR package) by Mechon Mamre
  5699.       which provides Hebrew screen fonts
  5700. SeeAlso: INT 16/AX=6D74h"MTRTSR"
  5701. --------V-106E00-----------------------------
  5702. INT 10 - Paradise VGA internal - GET ???
  5703.     AX = 6E00h
  5704. Return: BX = 5744h ('WD') if supported
  5705.         DH:AH:AL = last three ASCII digits of ROM serial number
  5706.         CL = ???
  5707.         CH = ???
  5708. SeeAlso: AX=6E04h,AX=6E05h
  5709. --------V-106E04-----------------------------
  5710. INT 10 - Paradise VGA internal - GET SCREEN SIZE AND ???
  5711.     AX = 6E04h
  5712. Return: BX = screen width (columns)
  5713.     CX = screen height (lines)
  5714.     AH = ??? (05h or FFh)
  5715.     AL = ??? (04h or video mode)
  5716. SeeAlso: AX=6E00h,AX=6E05h
  5717. --------V-106E05-----------------------------
  5718. INT 10 - Paradise VGA internal - SET MODE
  5719.     AX = 6E05h
  5720.     BL = mode
  5721. Return: nothing
  5722. Note:    like AH=00h, AL=BL.
  5723. SeeAlso: AH=00h,AX=6E00h,AX=6E04h,AX=6F05h
  5724. --------V-106F00-----------------------------
  5725. INT 10 - HP Vectra EX-BIOS - INSTALLATION CHECK
  5726.     AX = 6F00h
  5727.     BX <> 4850h (usually set to 0000h for simplicity)
  5728. Return: BX = 4850h ('HP') indicates HP Extended BIOS video functions present
  5729.     AX destroyed
  5730. SeeAlso: AX=6F00h"Video7",AX=6F01h,AX=6F02h,AX=6F03h,AX=6F04h,AX=6F05h
  5731. SeeAlso: INT 14/AX=6F00h,INT 16/AX=6F00h,INT 17/AX=6F00h,INT 33/AX=6F00h
  5732. --------V-106F00BX0000-----------------------
  5733. INT 10 - VIDEO - Video7 VGA,VEGA VGA - INSTALLATION CHECK
  5734.     AX = 6F00h
  5735.     BX = 0000h
  5736. Return: BX = 5637h ('V7') indicates Video7 VGA/VEGA VGA extensions are present
  5737. SeeAlso: AX=6F01h,AX=6F02h,AX=6F03h,AX=6F04h,AX=6F05h
  5738. --------V-106F01-----------------------------
  5739. INT 10 - VIDEO - Video7 VGA,VEGA VGA,HP EX-BIOS - GET MONITOR INFO
  5740.     AX = 6F01h
  5741. Return: AL = monitor type code (HP,VEGA VGA only) (see #0098)
  5742.     AH = status register information (see #0099)
  5743.     CL = current value of Extended Control register (HP Ext BIOS, and only
  5744.         if AL=41h) (see #0100)
  5745. Notes:    bits 0-3 are the same as the EGA/VGA status register bits 0-3
  5746.     supported by original HP Vectra AT and by ES/QS/RS series Vectras
  5747.  
  5748. (Table 0098)
  5749. Values for monitor type code (HP Extended BIOS):
  5750.  00h    non-HP card with ROM and possibly its own INT 10h driver
  5751.  41h    MultiMode video display adapter
  5752.  42h-44h reserved
  5753.  45h    industry standard monochrome display adapter
  5754.  46h    industry standard color display adapter
  5755.  51h    reserved
  5756.  
  5757. Bitfields for status register information:
  5758. Bit(s)    Description    (Table 0099)
  5759.  0    display enable
  5760.     0 = display enabled
  5761.     1 = vertical or horizontal retrace in progress
  5762.  1    light pen flip flop set
  5763.  2    light pen switch activated
  5764.  3    vertical sync
  5765.  4    monitor resolution
  5766.     0 = high resolution (>200 lines)
  5767.     1 = low resolution (<=200 lines)
  5768.  5    display type (0 = color, 1 = monochrome)
  5769.  6,7    diagnostic bits
  5770. Note:    bits 0-3 are the same as the EGA/VGA status register bits 0-3
  5771. --------V-106F02-----------------------------
  5772. INT 10 - HP Vectra EX-BIOS - SET MONITOR INFO
  5773.     AX = 6F02h
  5774.     BL = new value for extended control register (see #0100)
  5775. Return: AX,BL destroyed
  5776. Notes:    this function is only valid when an HP MultiMode Video Display Adapter
  5777.       is installed
  5778.     the Extended Control register is at I/O address 3DDh
  5779. SeeAlso: AX=6F01h,AX=6F03h
  5780.  
  5781. Bitfields for HP Vectra extended control register:
  5782. Bit(s)    Description    (Table 0100)
  5783.  0    screen resolution (0 = 200 lines, 1 = 400 lines)
  5784.  1    underline enable (if set, 'blue' of fg color = underline)
  5785.  2    font (0 = Standard-8, 1 = HP-Roman-8)
  5786.  3    memory disabled for CPU access
  5787.  4    allow access to full 32K memory instead of wrapping at 16K
  5788.  5    select second 16K page instead of first
  5789.  6,7    unused
  5790. --------V-106F03-----------------------------
  5791. INT 10 - HP Vectra EX-BIOS - MODIFY MONITOR INFO
  5792.     AX = 6F03h
  5793.     BH = exclude mask (set bits are not modified)
  5794.     BL = new values for bits indicated by BH (see #0100)
  5795. Return: AX destroyed
  5796. Notes:    this function is only valid when an HP MultiMode Video Display Adapter
  5797.       is installed
  5798.     supported by original HP Vectra AT and by ES/QS/RS series Vectras
  5799. SeeAlso: AX=6F01h,AX=6F02h
  5800. --------V-106F04-----------------------------
  5801. INT 10 - VIDEO - Video7 VGA,VEGA VGA,HP Vectra - GET MODE AND SCREEN RESOLUTION
  5802.     AX = 6F04h
  5803. Return: AL = current video mode (see #0101)
  5804.     BX = horizontal columns (text) or pixels (graphics)
  5805.     CX = vertical columns (text) or pixels (graphics)
  5806. SeeAlso: AX=6F05h
  5807. --------V-106F05-----------------------------
  5808. INT 10 - VIDEO - Video7 VGA,VEGA EXTENDED EGA/VGA,HP Vectra - SET VIDEO MODE
  5809.     AX = 6F05h
  5810.     BL = mode (see #0101)
  5811. Return: AX,BL destroyed
  5812. Notes:    also supported by the HP Vectra Extended BIOS on the original
  5813.       HP Vectra AT and by ES/QS/RS series Vectras
  5814.     on the HP Vectra, this function rather than AH=00h must be used to
  5815.       return to an IBM-standard mode after setting an HP-specified mode
  5816.       from 08h to 0Fh.
  5817. SeeAlso: AH=00h,AX=0070h,AX=007Eh,AX=6F04h
  5818.  
  5819. (Table 0101)
  5820. Values for Video7/VEGA video mode:
  5821.      text/ text pixel    pixel    colors disply scrn  system
  5822.      grph resol     box  resolution       pages  addr
  5823.  00h-13h = standard IBM modes (see #0009 at AH=00h)
  5824.  08h = T  80x27      .      .    mono      .    .  HP MultiMode Video
  5825.  09h = T  80x27      .      .      .      .    .  HP MultiMode Video
  5826.  0Ah = T  40x27      .      .    mono      .    .  HP MultiMode Video
  5827.  0Bh = T  40x27      .      .      .      .    .  HP MultiMode Video
  5828.  0Ch = reserved                       HP MultiMode Video
  5829.  0Dh = G    .      .    640x400      .      .    .  HP MultiMode Video
  5830.  0Eh = G    .      .    320x400      .      .    .  HP MultiMode Video
  5831.  0Fh = G    .      .    320x400      .      .    .  HP MultiMode Video
  5832.  40h = T  80x43     8x8      .      .      .    .  Video7/VEGA VGA
  5833.  41h = T 132x25     8x14      .      .      .    .  Video7/VEGA VGA
  5834.  42h = T 132x43     8x8      .      .      .    .  Video7/VEGA VGA
  5835.  43h = T  80x60     8x8      .      .      .    .  Video7/VEGA VGA
  5836.  44h = T 100x60     8x8      .      .      .    .  Video7/VEGA VGA
  5837.  45h = T 132x28     8x8      .      .      .    .  Video7/VEGA VGA
  5838.  60h = G    .      .    752x410     16      .    .  Video7 VGA, VEGA VGA
  5839.  61h = G    .      .    720x540     16      .    .  Video7 VGA, VEGA VGA
  5840.      = G    .      .    720x540     16      .    .  Northgate, Headland 1024i
  5841.  62h = G    .      .    800x600     16      .    .  Video7 VGA, VEGA Ext EGA
  5842.      = G    .      .    800x600     16      .    .  Headland 1024i
  5843.  63h = G    .      .   1024x768      2      .    .  Video7 VGA
  5844.  64h = G    .      .   1024x768      4      .    .  Video7 VGA
  5845.  65h = G    .      .   1024x768     16      .    .  Video7 VGA, VEGA Ext EGA
  5846.      = G    .      .   1024x768     16      .    .  Headland 1024i
  5847.  66h = G    .      .    640x400    256      .    .  Video7 VGA, VEGA Ext VGA
  5848.      = G    .      .    640x400    256      .    .  Northgate, Headland 1024i
  5849.  67h = G    .      .    640x480    256      .    .  Video7 VGA, VEGA Ext VGA
  5850.      = G    .      .    640x480    256      .    .  Headland 1024i
  5851.  68h = G    .      .    720x540    256      .    .  Video7 VGA, VEGA Ext VGA
  5852.      = G    .      .    720x540    256      .    .  Headland 1024i
  5853.  69h = G    .      .    800x600    256      .    .  Video7 VGA, VEGA Ext VGA
  5854.      = G    .      .    800x600    256      .    .  Headland 1024i
  5855.  70h = G    .      .    752x410     16gray      .    .  Video7 VGA, VEGA VGA
  5856.  71h = G    .      .    720x540     16gray      .    .  Video7 VGA, VEGA VGA
  5857.  72h = G    .      .    800x600     16gray      .    .  Video7 VGA
  5858.  73h = G    .      .   1024x768      2gray      .    .  Video7 VGA
  5859.  74h = G    .      .   1024x768      4gray      .    .  Video7 VGA
  5860.  75h = G    .      .   1024x768     16gray      .    .  Video7 VGA
  5861.  76h = G    .      .    640x400    256gray      .    .  Video7 VGA
  5862.  77h = G    .      .    640x480    256gray      .    .  Video7 VGA
  5863.  78h = G    .      .    720x540    256gray      .    .  Video7 VGA
  5864.  79h = G    .      .    800x600    256gray      .    .  (future)
  5865. SeeAlso: AH=00h,#0009,AX=0070h,#0010,AX=007Eh,AX=6F04h,#0069
  5866. Index:    video modes;Video 7|video modes;VEGA|video modes;Headland
  5867. --------V-106F06-----------------------------
  5868. INT 10 - VIDEO - Video7 VGA,VEGA VGA - SELECT AUTOSWITCH MODE
  5869.     AX = 6F06h
  5870.     BL = Autoswitch mode select
  5871.          00h select EGA/VGA-only modes
  5872.          01h select Autoswitched VGA/EGA/CGA/MGA modes
  5873.          02h select 'bootup' CGA/MGA modes
  5874.     BH = enable/disable (00h enable, 01h = disable selection)
  5875. Return: nothing
  5876. --------V-106F07-----------------------------
  5877. INT 10 - VIDEO -  Video7 VGA,VEGA VGA - GET VIDEO MEMORY CONFIGURATION
  5878.     AX = 6F07h
  5879. Return: AL = 6Fh
  5880.     AH = memory configuration
  5881.         bits 0-6 = number of 256K blocks of video memory
  5882.         bit 7    = DRAM/VRAM (0: DRAM, 1: VRAM)
  5883.     BH = chip revision (SR8F) (S/C Chip in VEGA VGA)
  5884.     BL = chip revision (SR8E) (G/A Chip in VEGA VGA)
  5885.     CX = 0000h
  5886. SeeAlso: AH=12h/BL=10h
  5887. --------V-1070-------------------------------
  5888. INT 10 - VIDEO - TANDY 2000 only - GET ADDRESS OF VIDEO RAM
  5889.     AH = 70h
  5890. Return: AX:BX -> WORD containing green plane's offset
  5891.     AX:CX -> WORD containing green plane's segment
  5892.     AX:DX -> WORD containing segment of red (offset 0) and blue (offset
  5893.             4000) planes
  5894. SeeAlso: AH=71h
  5895. --------V-1070------------------------------------
  5896. INT 10 - HUNTER 16 - DRAW ELLIPSE/CIRCLE
  5897.     AH = 70h
  5898.     DS:BX -> control block (see #0102)
  5899. Return: nothing
  5900. Desc:    Draws a circle or ellipse. Only valid in graphics modes.
  5901. Note:    the Husky Hunter 16 is an 8088-based ruggedized laptop.     Other family
  5902.       members are the Husky Hunter, Husky Hunter 16/80, and Husky Hawk.
  5903. SeeAlso: AH=71h"HUNTER"
  5904.  
  5905. Format of HUNTER 16 control block:
  5906. Offset    Size    Description    (Table 0102)
  5907.  00h    WORD    center X co-ordinate
  5908.  02h    BYTE    center Y co-ordinate
  5909.  03h    WORD    radius in pixels
  5910.  05h    BYTE    color (00h white, 01h black, FFh invert)
  5911.  06h    BYTE    aspect ratio x:x (1-127)
  5912.  07h    BYTE    aspect ratio y:y (1-127)
  5913. --------V-107000BX0000-----------------------
  5914. INT 10 - Everex Extended Video BIOS - RETURN EMULATION STATUS
  5915.     AX = 7000h
  5916.     BX = 0000h
  5917. Return: AL = 70h if Trident-based Everex card
  5918.     CL = monitor type (see #0103)
  5919.     CH = feature bits (see #0104)
  5920.     DX = video board info
  5921.         bits 4-15: board ID model (see #0105)
  5922.         bits 0-3:  board ID revision
  5923.     DI = BCD BIOS version number
  5924. SeeAlso: AX=5F01h,AH=FFh"Oak"
  5925.  
  5926. (Table 0103)
  5927. Values for Everex monitor type:
  5928.  00h    mono
  5929.  01h    CGA
  5930.  02h    EGA
  5931.  03h    digital multifrequency
  5932.  04h    IBM PS/2
  5933.  05h    IBM 8514
  5934.  06h    SuperVGA
  5935.  07h    analog multifrequency
  5936.  08h    super multifrequency
  5937.  
  5938. Bitfields for Everex feature bits:
  5939. Bit(s)    Description    (Table 0104)
  5940.  7-6    memory size
  5941.     00 = 256K
  5942.     01 = 512K
  5943.     10 = 1024K
  5944.     11 = 2048K
  5945.  5    special oscillator present
  5946.  4    VGA protect enabled
  5947.  0    6845 emulation
  5948.  
  5949. (Table 0105)
  5950. Values for board model for Trident-based Everex cards:
  5951.  0236h    Ultragraphics II
  5952.  0620h    Vision VGA
  5953.  0673h    EVGA
  5954.  0678h    Viewpoint
  5955. --------V-107000BX0004-----------------------
  5956. INT 10 - Everex Extended Video BIOS - GET PAGING FUNCTION POINTER FOR CURR MODE
  5957.     AX = 7000h
  5958.     BX = 0004h
  5959. Return: ES:DI -> FAR paging function (call with DL = page to set)
  5960. Note:    the word preceding ES:DI is the length of the function in bytes, and
  5961.       the last byte of the function is a FAR return instruction.
  5962. SeeAlso: AX=4F05h,AX=7000h/BX=0000h,AX=7000h/BX=0005h
  5963. --------V-107000BX0005-----------------------
  5964. INT 10 - Everex Extended Video BIOS - GET SUPPORTED MODE INFO
  5965.     AX = 7000h
  5966.     BX = 0005h
  5967.     CL = maximum number of modes to get info for
  5968.     CH = mode type to get info for (see #0106)
  5969.     DL = monitor type to get info for
  5970.     ES:DI -> buffer for mode info (see #0107)
  5971. Return: CL = total number of modes fitting criteria
  5972.     CH = size of each info record
  5973. SeeAlso: AX=7000h/BX=0000h,AX=7000h/BX=0004h
  5974.  
  5975. (Table 0106)
  5976. Values for Everex mode type:
  5977.  00h    all modes
  5978.  01h    monochrome text modes
  5979.  02h    color text modes
  5980.  03h    four-color CGA graphics modes
  5981.  04h    two-color CGA graphics modes
  5982.  05h    16-color graphics modes
  5983.  06h    256-color graphics modes
  5984.  
  5985. Format of Everex mode information record:
  5986. Offset    Size    Description    (Table 0107)
  5987.  00h    BYTE    mode number (bit 7 set if extended mode)
  5988.  01h    BYTE    mode type (see #0106)
  5989.  02h    BYTE    info bits (see #0108)
  5990.  03h    BYTE    font height
  5991.  04h    BYTE    text columns on screen
  5992.  05h    BYTE    text rows on screen
  5993.  06h    WORD    number of scan lines
  5994.  08h    BYTE    color information
  5995.         bits 7-4 reserved
  5996.              3-0 bits per pixel
  5997.  
  5998. Bitfields for Everex info bits:
  5999. Bit(s)    Description    (Table 0108)
  6000.  7,6    reserved
  6001.  5    monochrome mode
  6002.  4    interlaced display
  6003.  3    requires special oscillator
  6004.  2,1    memory required (00 = 256K, 01 = 512K, 10 = 1024K, 11 = 2048K)
  6005.  0    reserved
  6006. --------V-1071-------------------------------
  6007. INT 10 - VIDEO - TANDY 2000 only - GET ADDRESS OF INCRAM
  6008.     AH = 71h
  6009. Return: AX:BX -> WORD containing segment address of INCRAM
  6010.     AX:CX -> WORD containing offset of INCRAM
  6011. SeeAlso: AH=70h"TANDY"
  6012. --------V-1071------------------------------------
  6013. INT 10 - HUNTER 16 - DRAW LINE/BOX
  6014.     AH = 71h
  6015.     DS:BX -> control block (see #0109)
  6016. Return: nothing
  6017. Desc:    Draws a line or box. Only valid in graphics modes.
  6018. SeeAlso: AH=70h"HUNTER"
  6019.  
  6020. Format of HUNTER 16 control block:
  6021. Offset    Size    Description    (Table 0109)
  6022.  00h    WORD    left edge X co-ordinate
  6023.  02h    BYTE    lower edge Y co-ordinate
  6024.  03h    WORD    right edge X co-ordinate
  6025.  05h    BYTE    upper edge Y co-ordinate
  6026.  06h    BYTE    color (00h white, 01h black, FFh invert)
  6027.  07h    BYTE    type (00h line, 01h box)
  6028.  08h    BYTE    if non-zero (and type is BOX) fill with color
  6029. --------V-1072-------------------------------
  6030. INT 10 - VIDEO - TANDY 2000 only - SCROLL RIGHT PART OR ALL OF SCREEN
  6031.     AH = 72h
  6032.     AL = number of columns to shift scroll area, 00h to clear entire area
  6033.     BH = new attributes for blanked columns at left
  6034.     CH,CL = row, column of upper left corner of scroll area
  6035.     DH,DL = row, column of lower right corner of scroll area
  6036. Return: nothing
  6037. SeeAlso: AH=06h,AH=07h,AH=73h"TANDY",INT 15/AH=12h/BH=05h
  6038. --------V-1072------------------------------------
  6039. INT 10 - HUNTER 16 - SELECT TEXT-MODE INVERSE VIDEO MECHANISM
  6040.     AH = 72h
  6041.     AL = mechanism to use
  6042.         00h do not use inverse video
  6043.         01h emulate MDA. Display attribute 07h is normal video and 70h is
  6044.         inverse video.
  6045.         02h use inverse video if background is non-black.
  6046.         03h use inverse video for high intensity text.
  6047.         04h use inverse video for text with background intensity greater
  6048.         than foreground intensity.
  6049.         05h use inverse video for text with background color other than
  6050.         black or high intensity foreground.
  6051. Return: nothing
  6052. SeeAlso: AH=70h"HUNTER",AH=71h"HUNTER"
  6053. --------V-1073-------------------------------
  6054. INT 10 - VIDEO - TANDY 2000 only - SCROLL LEFT PART OR ALL OF SCREEN
  6055.     AH = 73h
  6056.     AL = number of columns to shift scroll area, 00h to clear entire area
  6057.     BH = new attributes for blanked columns at right
  6058.     CH,CL = row, column of upper left corner of scroll area
  6059.     DH,DL = row, column of lower right corner of scroll area
  6060. Return: nothing
  6061. SeeAlso: AH=06h,AH=07h,AH=72h"TANDY",INT 15/AH=12h/BH=05h
  6062. --------V-1073------------------------------------
  6063. INT 10 - HUNTER 16 - SELECT TEXT FONT
  6064.     AH = 73h
  6065.     AL = new font
  6066.           00h  7x7 in a 8x8 cell
  6067.           01h  5x7 in a 6x8 cell
  6068.           06h  3x5 in a 4x6 cell
  6069. Return: BH = cell width
  6070.     BL = cell height
  6071. SeeAlso: AH=60h"HUNTER",AH=77h"HUNTER"
  6072. --------V-1074------------------------------------
  6073. INT 10 - HUNTER 16 - SET LCD WINDOWS POSITION
  6074.     AH = 74h
  6075.     DH = row (0..24)
  6076.     DL = column (0..79)
  6077. Return: nothing
  6078. Desc:    set the position in the virtual screen being displayed in the LCD
  6079.       screen. If Split Screen (INT 10/AH=66h) is used, this call sets the
  6080.       position for the window which has the cursor.
  6081. SeeAlso: AH=66h"HUNTER",AH=75h,AH=76h
  6082. --------V-1075------------------------------------
  6083. INT 10 - HUNTER 16 - SET ZOOM
  6084.     AH = 75h
  6085.     AL = new Zoom state (00h off, nonzero on)
  6086. Return: nothing
  6087. SeeAlso: AH=74h,AH=76h
  6088. --------V-1076------------------------------------
  6089. INT 10 - HUNTER 16 - LOOKING KEYS
  6090.     AH = 76h
  6091.     AL = action
  6092.          00h home the window
  6093.          01h move up one line
  6094.          02h move down one line
  6095.          03h move left one character
  6096.          04h move right one character
  6097.          05h flip window to other side of virtual screen
  6098. Return: nothing
  6099. Desc:    moves the displayed screen around the virtual screen
  6100. SeeAlso: AH=74h,AH=75h
  6101. --------V-1077------------------------------------
  6102. INT 10 - HUNTER 16 - GET GRAPHICS FONT
  6103.     AH = 77h
  6104. Return: AL = font number (see #0110)
  6105. SeeAlso: AH=60h"HUNTER",AH=73h"HUNTER"
  6106.  
  6107. (Table 0110)
  6108. Values for HUNTER 16 graphics font number:
  6109.  00h     7x7  in a  8x8     cell
  6110.  01h     5x7  in a  6x8     cell
  6111.  02h     7x9  in a  8x10 cell
  6112.  03h    14x9  in a 16x10 cell
  6113.  04h     7x18 in a  8x20 cell
  6114.  05h    14x18 in a 16x20 cell
  6115.  06h     3x5  in a  4x6     cell
  6116. Note:    size is X * Y
  6117. --------V-1078------------------------------------
  6118. INT 10 - HUNTER 16 - TURN BACKLIGHT ON/OFF
  6119.     AH = 78h
  6120.     AL = new state of backlight (00h on, 01h off)
  6121. Return: nothing
  6122. SeeAlso: AH=64h,INT 15/AH=74h
  6123. --------V-107F-------------------------------
  6124. INT 10 - Paradise SVGA - WD90C24 INSTALLATION CHECK
  6125.     AH = 7Fh
  6126. Return: AX = 1234h if WD90C24 chip installed
  6127. --------V-107F00-----------------------------
  6128. INT 10 - SOLLEX SuperVGA - GET EXTENSIONS INFO
  6129.     AX = 7F00h
  6130. Return: AL <> 7Fh if not supported
  6131.     AL = 7Fh if supported
  6132.         AH = status
  6133.         00h successful
  6134.             ES:DI -> info structure (see #0111)
  6135.         01h failed
  6136. Program: the SOLLEX (Smos videO controLLer EXtensions) SuperVGA functions are
  6137.       an extension to the VESA SuperVGA BIOS Extensions (see AX=4F00h) by
  6138.       Seiko Epson Corporation intended to provided a standardized interface
  6139.       to SuperVGA functionality not addressed by the VESA standard
  6140. SeeAlso: AX=4F00h
  6141.  
  6142. Format of SOLLEX SuperVGA info structure:
  6143. Offset    Size    Description    (Table 0111)
  6144.  00h    DWORD    pointer to VESA function dispatch table
  6145.  04h    DWORD    pointer to SOLLEX function dispatch table
  6146.  08h    DWORD    pointer to VESA SuperVGA info (see #0063 at AX=4F00h)
  6147.  0Ch    DWORD    pointer to mode info structure table, consisting of
  6148.           alternating ResInfo (see #0112) and VESA mode information
  6149.           (see #0065 at AX=4F01h) blocks, terminated with an FFFFh word
  6150.  10h    DWORD    pointer to font info structure table (see #0113)
  6151.  14h    WORD    high resolution crystal frequency in Hz (0000h = not present)
  6152.  16h    DWORD    pointer to ASCIZ ID string
  6153.  1Ah    DWORD    pointer to timeout reset table
  6154.         array of bytes, each a multiple of the minimum time increment
  6155.  1Eh    WORD    minimum time increment in timer ticks
  6156.  20h    BYTE    inverse options supported
  6157.         bit 0: inverse supported
  6158.         bits 1-7: reserved
  6159.  21h    BYTE    normal color value
  6160.  22h    BYTE    inverse color value
  6161.  23h    WORD    port to be accessed for normal/inverse settings
  6162.  25h    WORD    type of interface chip (currently undefined)
  6163.  27h    WORD    program operational mode
  6164.         bits 1-0: 00 no preference
  6165.               01 terse (minimum detail in program messages)
  6166.               10 verbose
  6167.               11 use menus if supported, verbose mode otherwise
  6168.         bits 7-2: reserved
  6169.  29h    WORD    SOLLEX specification version
  6170.  2Bh    WORD    version of VESA/SOLLEX implementation
  6171.  2Dh    DWORD    offset to relocatable portion of SOLLEX extensions (for CONFIG)
  6172.  2Eh    DWORD    offset to unused section of the extensions ROM
  6173.  31h 16 BYTEs    reserved
  6174. Note:    all DWORD pointers initially require segment fixups; if the segment
  6175.       is 0000h, it should be changed to the returned ES, otherwise it
  6176.       may be assumed to be correct
  6177.  
  6178. Format of SOLLEX SuperVGA ResInfo:
  6179. Offset    Size    Description    (Table 0112)
  6180.  00h    WORD    16-bit mode number
  6181.  02h    WORD    adapter type (00h VGA, 01h EGA, 02h CGA, 03h MDA)
  6182.  04h    WORD    display info (see #0116)
  6183.  06h    DWORD    pointer to video parameter table
  6184.  0Ah    BYTE    replacement entry in master Video Parameter
  6185.  0Bh    BYTE    mode requested for mode set by BIOS
  6186.  0Ch    DWORD    pointer to LoadReg table
  6187.  10h    BYTE    index into table of clock values (see #0114)
  6188. SeeAlso: #0111
  6189.  
  6190. Format of SOLLEX SuperVGA font info table [array] entry:
  6191. Offset    Size    Description    (Table 0113)
  6192.  00h    BYTE    required font height
  6193.  01h    BYTE    parameter to load text mode font
  6194.  02h    BYTE    parameter to load graphics mode font
  6195. SeeAlso: #0111
  6196.  
  6197. (Table 0114)
  6198. Values for SOLLEX SuperVGA clock value index:
  6199.  00h    25 MHz
  6200.  01h    28 MHz
  6201.  02h    PCLK
  6202.  03h    31.5 MHz (VESA 640x480)
  6203.  04h    reserved
  6204.  05h    16 MHz (EGA)
  6205.  06h    PCLK
  6206.  07h    24 MHz (EGA)
  6207.  08h    25 MHz
  6208.  09h    28 MHz
  6209.  0Ah    36 MHz
  6210.  0Bh    45 MHz (for 1024x768)
  6211.  0Ch    80 MHz
  6212.  0Dh    40 MHz
  6213.  0Eh    65 MHz
  6214.  0Fh     1 MHz (for powerdown)
  6215. SeeAlso: #0111
  6216. --------V-107F00BX4000-----------------------
  6217. INT 10 - Diamond Stealth 24 - GET S3 INFORMATION BLOCK
  6218.     AX = 7F00h
  6219.     BX = 4000h
  6220. Return: AX = 007Fh if supported
  6221.         DX:BX -> DAC set mode routine
  6222. SeeAlso: AX=7F00h/BX=4001h,AX=7F00h/BX=4002h,#0629
  6223. --------V-107F00BX4001-----------------------
  6224. INT 10 - Diamond Stealth 24 - GET LINEAR ADDRESS
  6225.     AX = 7F00h
  6226.     BX = 4001h
  6227. Return: AX = 007Fh if supported
  6228.         CX = current linear address base (high word)
  6229. SeeAlso: AX=7F00h/BX=4000h,AX=7F00h/BX=4002h
  6230. --------V-107F00BX4002-----------------------
  6231. INT 10 - Diamond Stealth 24 - SET LINEAR ADDRESS
  6232.     AX = 7F00h
  6233.     BX = 4002h
  6234.     CX = new linear address base (high word)
  6235. Return: AX = 007Fh if supported
  6236. SeeAlso: AX=7F00h/BX=4000h,AX=7F00h/BX=4001h
  6237. --------V-107F01BL00-------------------------
  6238. INT 10 - SOLLEX SuperVGA - ADAPTER CONTROL - SET ADAPTER
  6239.     AX = 7F01h
  6240.     BL = 00h
  6241.     CX = adapter request (see #0115)
  6242. Return: AL <> 7Fh if not supported
  6243.     AL = 7Fh if supported
  6244.         AH = status
  6245.         00h successful
  6246.         01h failed
  6247. Note:    initializes video hardware to a particular standard
  6248. SeeAlso: AX=7F00h"SOLLEX",AX=7F01h/BL=01h,AX=7F01h/BL=02h
  6249.  
  6250. Bitfields for SOLLEX SuperVGA adapter request:
  6251. Bit(s)    Description    (Table 0115)
  6252.  1-0    adapter type (00 VGA, 01 EGA, 10 CGA, 11 MDA)
  6253.  2    reserved
  6254.  4-3    change displays (00 none, 01 analog 10 digital 11 panel)
  6255.  6-5    desired monitor sense (01 color, 10 mono, 11=8514)
  6256.  7    lock override
  6257.  8    alternate adapter mode
  6258.  15-9    reserved
  6259. --------V-107F01BL01-------------------------
  6260. INT 10 - SOLLEX SuperVGA - ADAPTER CONTROL - GET ADAPTER
  6261.     AX = 7F01h
  6262.     BL = 01h
  6263. Return: AL <> 7Fh if not supported
  6264.     AL = 7Fh if supported
  6265.         AH = status
  6266.         00h successful
  6267.         01h failed
  6268.         BX = adapter type (see #0115)
  6269.         DX = display type (see #0116)
  6270. SeeAlso: AX=7F00h"SOLLEX",AX=7F01h/BL=00h,AX=7F01h/BL=02h
  6271.  
  6272. Bitfields for SOLLEX SuperVGA display type:
  6273. Bit(s)    Description    (Table 0116)
  6274.  15-9    reserved
  6275.  8    alternate display active
  6276.  7    Enhanced Color Display monitor active
  6277.  6    multi-frequency digital monitor active
  6278.  5    PS/2-type monitor active
  6279.  4    plasma/electroluminescent panel active
  6280.  3    LCD panel active
  6281.  2    multi-frequency analog monitor active
  6282.  1-0    monitor sense (00 none, 01 color, 10 mono, 11=8514)
  6283. --------V-107F01BL02-------------------------
  6284. INT 10 - SOLLEX SuperVGA - ADAPTER CONTROL - DETERMINE ADAPTER SUPPORT
  6285.     AX = 7F01h
  6286.     BL = 02h
  6287.     CX = adapter request (see #0115)
  6288. Return: AL <> 7Fh if not supported
  6289.     AL = 7Fh if supported
  6290.         AH = status
  6291.         00h requested setting can successfully be made
  6292.         01h requested setting not available in this configuration
  6293. SeeAlso: AX=7F00h"SOLLEX",AX=7F01h/BL=00h
  6294. --------V-107F02BL00-------------------------
  6295. INT 10 - SOLLEX SuperVGA - DISPLAY OUTPUT CONTROL - SET DISPLAY OUTPUT
  6296.     AX = 7F02h
  6297.     BL = 00h
  6298.     CX = display output setting (see #0117)
  6299. Return: AL <> 7Fh if not supported
  6300.     AL = 7Fh if supported
  6301.         AH = status
  6302.         00h successful
  6303.         01h failed
  6304. SeeAlso: AX=7F00h"SOLLEX",AX=7F02h/BL=00h
  6305.  
  6306. Bitfields for SOLLEX SuperVGA display output setting:
  6307. Bit(s)    Description    (Table 0117)
  6308.  0    CRTC control in 2,1 valid
  6309.  1    enable digital output
  6310.  2    enable analog output
  6311.  3    panel control in 5,4 valid
  6312.  4    enable LCD output
  6313.  5    enable plasma/EL output
  6314.  6    inverse control in 7 valid
  6315.  7    0=normal, 1=inverse
  6316.  15-8    reserved
  6317. --------V-107F02BL01-------------------------
  6318. INT 10 - SOLLEX SuperVGA - DISPLAY OUTPUT CONTROL - GET DISPLAY OUTPUT
  6319.     AX = 7F02h
  6320.     BL = 01h
  6321. Return: AL <> 7Fh if not supported
  6322.     AL = 7Fh if supported
  6323.         AH = status
  6324.         00h successful
  6325.             BX = display output setting (see #0117)
  6326.             CX = displays attached (see #0118)
  6327.         01h failed
  6328. SeeAlso: AX=7F00h"SOLLEX",AX=7F02h/BL=00h
  6329.  
  6330. Bitfields for SOLLEX SuperVGA displays attached:
  6331. Bit(s)    Description    (Table 0118)
  6332.  0    PS/2 display on analog output
  6333.  1    multi-frequency monitor on analog output
  6334.  2    LCD panel attached
  6335.  3    plasma/electroluminescent panel attached
  6336.  4    multi-frequency monitor on digital output
  6337.  5    Enhanced Color Display attached to digital outpt
  6338.  6    alternate display
  6339.  15-7    reserved
  6340. --------V-107F03BL00-------------------------
  6341. INT 10 - SOLLEX SuperVGA - VIDEO SUPPORT CONTROL - GET SUPPORT INFO
  6342.     AX = 7F03h
  6343.     BL = 00h
  6344.     CX = support type
  6345.         0000h VGA, 0001h EGA, 0002h CGA, 0003h MDA, 0004h extensions,
  6346.         0005h-0012h reserved for SOLLEX, 0013h Hercules,
  6347.         0014h-001Fh reserved for SOLLEX, 0020h-00FFh reserved for OEM
  6348. Return: AL <> 7Fh if not supported
  6349.     AL = 7Fh if supported
  6350.         AH = status
  6351.         00h successful
  6352.             CX = size of video support code
  6353.             DX = segment of physical video support (0000h if no ROM)
  6354.             ES = segment of active video support
  6355.             ES:DI -> information block (DI = 0000h if none available)
  6356.         01h failed
  6357. SeeAlso: AX=7F03h/BL=01h
  6358. --------V-107F03BL01-------------------------
  6359. INT 10 - SOLLEX SuperVGA - VIDEO SUPPORT CONTROL - INITIALIZE VIDEO SUPPORT
  6360.     AX = 7F03h
  6361.     BL = 01h
  6362.     CX = support request
  6363.     ES = segment of support code
  6364. Return: AL <> 7Fh if not supported
  6365.     AL = 7Fh if supported
  6366.         AH = status
  6367.         00h successful
  6368.         01h failed
  6369. Note:    initializes the indicated video support by calling ES:0003h; this
  6370.       function may be used to switch the active video support back to
  6371.       ROM after AX=7F03h/BL=02h
  6372. SeeAlso: AX=7F03h/BL=00h
  6373. --------V-107F03BL02-------------------------
  6374. INT 10 - SOLLEX SuperVGA - VIDEO SUPPORT CONTROL - GO RAM RESIDENT
  6375.     AX = 7F03h
  6376.     BL = 02h
  6377.     CX = support request
  6378.     ES = destination segment
  6379. Return: AL <> 7Fh if not supported
  6380.     AL = 7Fh if supported
  6381.         AH = status
  6382.         00h successful
  6383.         01h failed
  6384. SeeAlso: AX=7F00h"SOLLEX",AX=7F03h/BL=01h
  6385. --------V-107F04BL00-------------------------
  6386. INT 10 - SOLLEX SuperVGA - POWER CONTROL - SET POWER STATE
  6387.     AX = 7F04h
  6388.     BL = 00h
  6389.     CX = new power state
  6390. Return: AL <> 7Fh if not supported
  6391.     AL = 7Fh if supported
  6392.         AH = status
  6393.         00h successful
  6394.         01h failed
  6395. Note:    higher values progressively reduce the operations available on the
  6396.       video adapter while yielding increasing power savings
  6397. SeeAlso: AX=7F00h"SOLLEX",AX=7F04h/BL=01h
  6398. --------V-107F04BL01-------------------------
  6399. INT 10 - SOLLEX SuperVGA - POWER CONTROL - GET POWER STATE
  6400.     AX = 7F04h
  6401.     BL = 01h
  6402. Return: AL <> 7Fh if not supported
  6403.     AL = 7Fh if supported
  6404.         AH = status
  6405.         00h successful
  6406.             CX = current power state
  6407.             DX = maximum state
  6408.         01h failed
  6409. SeeAlso: AX=7F00h"SOLLEX",AX=7F04h/BL=00h
  6410. --------V-107F04BL02-------------------------
  6411. INT 10 - SOLLEX SuperVGA - POWER CONTROL - SET TIMEOUT RESET
  6412.     AX = 7F04h
  6413.     BL = 02h
  6414.     CX = timeout reset
  6415. Return: AL <> 7Fh if not supported
  6416.     AL = 7Fh if supported
  6417.         AH = status
  6418.         00h successful
  6419.         01h failed
  6420. SeeAlso: AX=7F00h"SOLLEX",AX=7F04h/BL=03h
  6421. --------V-107F04BL03-------------------------
  6422. INT 10 - SOLLEX SuperVGA - POWER CONTROL - GET TIMEOUT RESET
  6423.     AX = 7F04h
  6424.     BL = 03h
  6425. Return: AL <> 7Fh if not supported
  6426.     AL = 7Fh if supported
  6427.         AH = status
  6428.         00h successful
  6429.             BX = time increment
  6430.             CX = current timeout reset
  6431.             DX = maximum timeout reset
  6432.             ES:DI -> timeout reset table (array of bytes)
  6433.         01h failed
  6434. Note:    the timeout period is computed as (BYTE ES:[DI+CX]) * BX timer ticks
  6435. SeeAlso: AX=7F00h"SOLLEX",AX=7F04h/BL=02h
  6436. --------V-107F05-----------------------------
  6437. INT 10 - SOLLEX SuperVGA - LOAD REGISTER
  6438.     AX = 7F05h
  6439.     ES:DI -> register value table (see #0119)
  6440. Return: AL <> 7Fh if not supported
  6441.     AL = 7Fh if supported
  6442.         AH = status
  6443.         00h successful
  6444.         01h failed
  6445. SeeAlso: AH=F1h,AH=F3h,AH=F5h
  6446.  
  6447. Format of SOLLEX SuperVGA register value table:
  6448. Offset    Size    Description    (Table 0119)
  6449.  00h    WORD    base I/O register (FFFFh = end of list)
  6450.  02h 2N BYTEs    pairs of values to be written to the base I/O register as an
  6451.           index value and the following register as a data byte
  6452.  2N+2    WORD    FFFFh (end of data list)
  6453.     ... (repeats until FFFFh base address)
  6454. --------V-107F06-----------------------------
  6455. INT 10 - SOLLEX SuperVGA - MULTIPLE FONT CONTROL
  6456.     AX = 7F06h
  6457.     BL = subfunction
  6458.         00h set multiple font state
  6459.         CX = new state (00h off, 01h on)
  6460.         01h get multiple font state
  6461.         Return: BL = current state (00h off, 01h on)
  6462. Return: AL <> 7Fh if not supported
  6463.     AL = 7Fh if supported
  6464.         AH = status
  6465.         00h successful
  6466.         01h failed
  6467. SeeAlso: AX=1100h,AX=1103h
  6468. --------V-107F07-----------------------------
  6469. INT 10 - SOLLEX SuperVGA - FILL VIDEO RAM
  6470.     AX = 7F07h
  6471.     BL = how much to fill
  6472.        00h regen size
  6473.        01h all video memory
  6474.     CX = pattern to write (normally 0720h for text modes and 0000h for gr)
  6475. Return: AL <> 7Fh if not supported
  6476.     AL = 7Fh if supported
  6477.         AH = status
  6478.         00h successful
  6479.         01h failed
  6480. SeeAlso: AH=06h
  6481. --------A-1080-------------------------------
  6482. INT 10 - CU Writer v1.4 - GET OPTION
  6483.     AH = 80h
  6484.     AL = desired option
  6485. Return: ???
  6486. Program: CU Writer is a public-domain Thai-English word processor from
  6487.       Chulalongkorn University, Bangkok
  6488. SeeAlso: AH=81h"CU Writer"
  6489. --------Q-1080--DX4456-----------------------
  6490. INT 10 U - VIDEO - DESQview 2.0x only - internal - SET ??? HANDLER
  6491.     AH = 80h
  6492.     DX = 4456h ('DV')
  6493.     ES:DI -> FAR subroutine to be called on ???
  6494. Return: DS = segment of DESQview data structure for video buffer
  6495. Note:    this function is probably meant for internal use only, due to the magic
  6496.       value required in DX
  6497.     the subroutine seems to be called when the DESQview menu is accessed;
  6498.       on entry, AL = 03h or 04h
  6499. --------A-1081-------------------------------
  6500. INT 10 - CU Writer v1.4 - SET OPTION
  6501.     AH = 81h
  6502.     ???
  6503. Return: ???
  6504. SeeAlso: AH=80h"CU Writer"
  6505. --------Q-1081--DX4456-----------------------
  6506. INT 10 U - VIDEO - DESQview 2.0x only - internal - GET ???
  6507.     AH = 81h
  6508.     DX = 4456h ('DV')
  6509. Return: ES = segment of DESQview data structure for video buffer
  6510.         BYTE ES:[0] = current window number in DV 2.0x
  6511. Note:    this function is probably meant for internal use only, due to the magic
  6512.       value required in DX
  6513. SeeAlso: AH=82h"DESQview"
  6514. --------Q-1082--DX4456-----------------------
  6515. INT 10 U - VIDEO - DESQview 2.0x only - internal - GET CURRENT WINDOW INFO
  6516.     AH = 82h
  6517.     DX = 4456h ('DV')
  6518. Return: DS = segment in DESQview for data structure
  6519.          in DV 2.00,
  6520.           BYTE DS:[0] = window number
  6521.           WORD DS:[1] = segment of other data structure
  6522.           WORD DS:[3] = segment of window's object handle
  6523.     ES = segment of DESQview data structure for video buffer
  6524.     AL = current window number
  6525.     AH = ???
  6526.     BL = direct screen writes
  6527.         00h program does not do direct writes
  6528.         01h program does direct writes, so shadow buffer not usable
  6529.     BH = ???
  6530.     CL = current video mode
  6531.     CH = ???
  6532. Note:    this function is probably meant for internal use only, due to the magic
  6533.       value required in DX
  6534. SeeAlso: AH=81h"DESQview"
  6535. --------J-108200-----------------------------
  6536. INT 10 - VIDEO - AX PC - GET/SET SCROLL MODE
  6537.     AX = 8200h
  6538.     BL = new scroll mode or FFh to get current mode
  6539.         00h dynamic, 01h software
  6540. Return: AL = scroll mode (current mode if BL=FFh, previous mode otherwise)
  6541. SeeAlso: AH=06h,AH=07h
  6542. --------J-108300-----------------------------
  6543. INT 10 - VIDEO - AX PC - GET VIDEO RAM ADDRESS
  6544.     AX = 8300h
  6545. Return: AX = offset of video RAM
  6546.     ES:BX -> virtual text RAM buffer
  6547. SeeAlso: AX=5201h
  6548. --------N-108B-------------------------------
  6549. INT 10 - Alloy MW386 - FORCE WORKSTATION SCREEN UPDATE
  6550.     AH = 8Bh
  6551. Return: nothing
  6552. SeeAlso: AH=92h,AH=93h
  6553. --------N-1090-------------------------------
  6554. INT 10 - Alloy MW386 - GET PHYSICAL WORKSTATION DISPLAY MODE
  6555.     AH = 90h
  6556. Return: AL = current video mode (see #0009 at AH=00h)
  6557. SeeAlso: AH=91h
  6558. --------N-1091-------------------------------
  6559. INT 10 - Alloy MW386 - GET PHYSICAL WORKSTATION ADAPTER TYPE
  6560.     AH = 91h
  6561. Return: AL = video adapter type (see #0120)
  6562. Note:    types less than 80h do not imply that the current user is on the host
  6563. SeeAlso: AH=90h
  6564.  
  6565. (Table 0120)
  6566. Values for Alloy MW386 video adapter type:
  6567.  00h    monochrome
  6568.  01h    Hercules monochrome graphics
  6569.  02h    CGA
  6570.  03h    EGA
  6571.  04h    VGA
  6572.  80h    monochrome text terminal
  6573.  81h    Hercules graphics terminal
  6574.  82h    color graphics terminal
  6575. --------N-1092-------------------------------
  6576. INT 10 - Alloy MW386 - INHIBIT WORKSTATION SCREEN UPDATES
  6577.     AH = 92h
  6578. Return: nothing
  6579. Note:    the terminal will be updated even when screen updates are inhibited if
  6580.       TTY output is used
  6581. SeeAlso: AH=8Bh
  6582. --------N-1093-------------------------------
  6583. INT 10 - Alloy MW386 - REDRAW SCREEN
  6584.     AH = 93h
  6585. Return: nothing
  6586. SeeAlso: AH=8Bh,AH=FFh
  6587. --------A-10A0-------------------------------
  6588. INT 10 - CU Writer v1.4 - SET PIXEL WRITE MODE
  6589.     AH = A0h
  6590.     ???
  6591. Return: ???
  6592. Program: CU Writer is a public-domain Thai-English word processor from
  6593.       Chulalongkorn University, Bangkok
  6594. SeeAlso: AH=80h"CU Writer",AH=B0h
  6595. --------p-10A000-----------------------------
  6596. INT 10 - ATI Mach64 BIOS - ???
  6597.     AX = A000h
  6598.     CL = ??? (bits 2-0 may not be 000)
  6599.     CH = ??? (81h or ???)
  6600.     DX = segment of ??? (if CH=81h)
  6601.     ???
  6602. Return: AX = ???
  6603. SeeAlso: AX=4F10h/BL=00h,AX=A001h
  6604. ----------10A001-----------------------------
  6605. INT 10 - ATI Mach64 BIOS - ???
  6606.     AX = A001h
  6607.     CL = ??? flags
  6608.     ???
  6609. Return: AH = status
  6610.         00h successful
  6611.         01h failed
  6612.     ???
  6613. SeeAlso: AX=A000h,AX=A002h
  6614. ----------10A002-----------------------------
  6615. INT 10 - ATI Mach64 BIOS - ???
  6616.     AX = A002h
  6617.     CL = ??? (bits 2-0 may not be 000)
  6618.     CH = ??? (81h or ???)
  6619.     DX = segment of ??? (if CH=81h)
  6620.     ???
  6621. Return: AH = status
  6622.         00h successful
  6623.         01h failed
  6624.     ???
  6625. Note:    executes AX=A000h, then AX=A001h if A000h was successful
  6626. SeeAlso: AX=A000h,AX=A001h
  6627. ----------10A003-----------------------------
  6628. INT 10 - ATI Mach64 BIOS - ???
  6629.     AX = A003h
  6630.     BX = ???
  6631.     ???
  6632. Return: AH = status (00h successful)
  6633.     ???
  6634. SeeAlso: AX=A000h,AX=A002h
  6635. --------V-10A004-----------------------------
  6636. INT 10 - PhoenixVIEW/LC - VIDEO DISPLAY TYPE
  6637.     AX = A004h
  6638.     ???
  6639. Return: ???
  6640. Desc:    configure display parameters
  6641. SeeAlso: AX=A01Bh"PhoenixVIEW/LC"
  6642. ----------10A004-----------------------------
  6643. INT 10 - ATI Mach64 BIOS - ???
  6644.     AX = A004h
  6645.     BX = video mode??? (0000-00FFh)
  6646.     DX = ??? (sent to some port [66ECh???] one bit at a time, high to low)
  6647.     ???
  6648. Return: AH = status
  6649.         00h successful
  6650.         01h failed
  6651.     ???
  6652. SeeAlso: AX=A000h,AX=A002h
  6653. ----------10A001-----------------------------
  6654. INT 10 - ATI Mach64 BIOS - ???
  6655.     AX = A005h
  6656.     CL = ??? flags (bits 0,2, others?)
  6657.     ???
  6658. Return: AH = status
  6659.         00h successful
  6660.         01h failed
  6661.     ???
  6662. SeeAlso: AX=A000h,AX=A002h
  6663. ----------10A001-----------------------------
  6664. INT 10 - ATI Mach64 BIOS - ???
  6665.     AX = A006h
  6666.     ???
  6667. Return: AH = status
  6668.         00h successful
  6669.         01h failed
  6670.     ???
  6671. SeeAlso: AX=A000h,AX=A002h
  6672. ----------10A007-----------------------------
  6673. INT 10 - ATI Mach64 BIOS - GET ???
  6674.     AX = A007h
  6675. Return: AH = 00h (successful)
  6676.     AL = ??? (00h)
  6677.     BX = ??? (15A0h in examined BIOS)
  6678.     DX = segment of BIOS
  6679. SeeAlso: AX=A000h,AX=A002h
  6680. ----------10A008-----------------------------
  6681. INT 10 - ATI Mach64 BIOS - GET ??? SIZE
  6682.     AX = A008h
  6683.     CL = ??? flags
  6684.     ???
  6685. Return: AH = 00h (successful)
  6686.     BX = size of ??? (0046h if CL bit 0 clear on entry)
  6687. SeeAlso: AX=A000h,AX=A009h
  6688. ----------10A009-----------------------------
  6689. INT 10 - ATI Mach64 BIOS - GET ???
  6690.     AX = A009h
  6691.     DX:BX -> buffer for ???
  6692.     CL = ??? flags
  6693.     ???
  6694. Return: AH = status
  6695.         00h successful
  6696.         DX:BX buffer filled
  6697.         01h failed
  6698.     ???
  6699. SeeAlso: AX=A000h,AX=A008h
  6700. ----------10A00A-----------------------------
  6701. INT 10 - ATI Mach64 BIOS - GET ???
  6702.     AX = A00Ah
  6703. Return: AH = 00h (successful)
  6704.     AL = ??? (01h)
  6705.     BX = ??? (5938h)
  6706.     CX = ??? (595Eh)
  6707.     DX = segment of BIOS
  6708. SeeAlso: AX=A000h,AX=A002h
  6709. ----------10A001-----------------------------
  6710. INT 10 - ATI Mach64 BIOS - ???
  6711.     AX = A00Bh
  6712.     BX = ???
  6713.     CL = ??? flags
  6714.     ???
  6715. Return: AH = status
  6716.         00h successful
  6717.         01h failed
  6718.     ???
  6719. SeeAlso: AX=A000h,AX=A002h
  6720. --------p-10A00C-----------------------------
  6721. INT 10 - ATI Mach64 BIOS - SET SLEEP MODE
  6722.     AX = A00Ch
  6723.     CL = new state
  6724.         00h normal operation
  6725.         01h standby
  6726.         02h suspend
  6727.         03h off
  6728. Return: AH = status
  6729.         00h successful
  6730.         01h failed
  6731. Note:    CL bit 2 affects values written to video card's ports
  6732. SeeAlso: AX=A000h,AX=A00Dh,AX=4F00h,AX=4F10h/BL=01h
  6733. ----------10A00D-----------------------------
  6734. INT 10 - ATI Mach64 BIOS - GET SLEEP MODE
  6735.     AX = A00Dh
  6736. Return: AH = 00h (successful)
  6737.     CL = current power mode
  6738.         00h normal operation
  6739.         01h standby
  6740.         02h suspend
  6741.         03h off
  6742. SeeAlso: AX=A00Ch,AX=4F10h/BL=02h
  6743. ----------10A00E-----------------------------
  6744. INT 10 - ATI Mach64 BIOS - SET ???
  6745.     AX = A00Eh
  6746.     CL = ??? (00h-03h)
  6747. Return: AH = status
  6748.         00h successful
  6749.         01h failed
  6750. Note:    CL zero/nonzero are treated differently
  6751. SeeAlso: AX=A000h,AX=A00Fh
  6752. ----------10A00F-----------------------------
  6753. INT 10 - ATI Mach64 BIOS - GET ???
  6754.     AX = A00Fh
  6755. Return: AH = 00h (successful)
  6756.     CL = ??? (00h-03h, read from PORT 42ECh)
  6757. SeeAlso: AX=A000h,AX=A00Eh
  6758. ----------10A010-----------------------------
  6759. INT 10 - ATI Mach64 BIOS - ???
  6760.     AX = A010h
  6761.     CL = ???  (80h/other)
  6762.     ???
  6763. Return: AH = status
  6764.         00h successful
  6765.         01h failed
  6766.     ???
  6767. SeeAlso: AX=A000h,AX=A002h
  6768. ----------10A011-----------------------------
  6769. INT 10 - ATI Mach64 BIOS - GET ???
  6770.     AX = A011h
  6771. Return: AH = 00h (successful)
  6772.     BL = ??? (1Fh)
  6773.     BH = ??? (0Fh)
  6774.     CL = ??? (00h)
  6775.     CH = ??? (0Fh)
  6776.     DX = ??? (00FFh)
  6777. SeeAlso: AX=A000h,AX=A010h
  6778. ----------10A012-----------------------------
  6779. INT 10 - ATI Mach64 BIOS - GET ???
  6780.     AX = A012h
  6781. Return: AH = 00h (successful)
  6782.     AL = ??? (00h)
  6783.     BX = ??? (0000h)
  6784.     CX = ??? (0000h)
  6785.     DX = ??? (02ECh)
  6786. SeeAlso: AX=A000h,AX=A002h
  6787. ----------10A013-----------------------------
  6788. INT 10 - ATI Mach64 BIOS - ???
  6789.     AX = A013h
  6790.     ???
  6791. Return: AH = status
  6792.         00h successful
  6793.         01h failed
  6794.     ???
  6795. Note:    not implemented in examined BIOS, always returns AH=01h
  6796. SeeAlso: AX=A000h,AX=A002h
  6797. --------V-10A01B-----------------------------
  6798. INT 10 - PhoenixVIEW/LC - CRT MONITOR DETECTION
  6799.     AX = A01Bh
  6800.     ???
  6801. Return: ???
  6802. Desc:    determine whether an external display is currently attached
  6803. SeeAlso: AX=A004h"PhoenixVIEW/LC"
  6804. --------U-10AA-------------------------------
  6805. INT 10 OU - Player's Tool 3.0 - UNINSTALL
  6806.     AH = AAh
  6807. Return: ???
  6808. Note:    this call has been removed in PT 3.996b
  6809. Program: Player's Tool is a game cheater by Dmitry Yakunin & Andy Robinson
  6810. SeeAlso: AH=ABh,INT 2F/AH=AAh
  6811. --------U-10AB-------------------------------
  6812. INT 10 OU - Player's Tool 3.0 - INSTALLATION CHECK
  6813.     AH = ABh
  6814. Return: BH = FFh
  6815.     ???
  6816. Note:    this call has been removed in PT 3.996b
  6817. SeeAlso: AH=AAh,INT 2F/AH=ABh
  6818. --------A-10B0-------------------------------
  6819. INT 10 - CU Writer v1.4 - PUT PIXEL
  6820.     AH = B0h
  6821.     ???
  6822. Return: ???
  6823. SeeAlso: AH=A0h"CU Writer",AH=B1h,AH=B2h,AH=B3h,AH=B4h,AH=B5h,AH=D0h
  6824. --------A-10B1-------------------------------
  6825. INT 10 - CU Writer v1.4 - MOVE TO
  6826.     AH = B1h
  6827.     ???
  6828. Return: ???
  6829. SeeAlso: AH=B0h,AH=B2h,AH=C0h"CU Writer"
  6830. --------A-10B2-------------------------------
  6831. INT 10 - CU Writer v1.4 - DRAW LINE TO
  6832.     AH = B2h
  6833.     ???
  6834. Return: ???
  6835. SeeAlso: AH=B0h,AH=B1h,AH=B3h,AH=B4h,AH=B5h
  6836. --------A-10B3-------------------------------
  6837. INT 10 - CU Writer v1.4 - FLOOD FILL
  6838.     AH = B3h
  6839.     ???
  6840. Return: ???
  6841. SeeAlso: AH=B2h,AH=B5h
  6842. --------A-10B4-------------------------------
  6843. INT 10 - CU Writer v1.4 - DRAW RECTANGLE
  6844.     AH = B4h
  6845.     ???
  6846. Return: ???
  6847. SeeAlso: AH=B0h,AH=B2h,AH=B3h,AH=B5h
  6848. --------A-10B5-------------------------------
  6849. INT 10 - CU Writer v1.4 - DRAW FILLED RECTANGLE
  6850.     AH = B5h
  6851.     ???
  6852. Return: ???
  6853. SeeAlso: AH=B0h,AH=B2h,AH=B3h,AH=B4h
  6854. --------V-10BD44-----------------------------
  6855. INT 10 U - Compaq QVision - ???
  6856.     AX = BD44h
  6857.     ???
  6858. Return: ???
  6859. Note:    called by Compaq's MTX132.COM, which places the QVision in 132-column
  6860.       mode
  6861. --------V-10BF--CX0000-----------------------
  6862. INT 10 - Athena Digital HGCIBM.COM - INSTALLATION CHECK
  6863.     AH = BFh
  6864.     CX = 0000h (???)
  6865. Return: CX = 0202h
  6866.     DL = ??? (internal data, possibly version number)
  6867. --------b-10BF00-----------------------------
  6868. INT 10 - VIDEO - Compaq Extensions - SELECT EXTERNAL MONITOR
  6869.     AX = BF00h
  6870. Return: nothing
  6871. Desc:    specify that the external monitor become the active monitor
  6872. Note:    all registers preserved and the internal monitor is blanked
  6873. SeeAlso: AX=BF01h,AX=BF12h,AH=12h/BL=35h
  6874. --------b-10BF01-----------------------------
  6875. INT 10 - VIDEO - Compaq Extensions - SELECT INTERNAL MONITOR
  6876.     AX = BF01h
  6877. Return: nothing
  6878. Desc:    specify that the internal monitor become the active monitor
  6879. Note:    all registers preserved and the external monitor is blanked
  6880. SeeAlso: AX=BF00h,AX=BF12h,AH=12h/BL=35h
  6881. --------b-10BF02-----------------------------
  6882. INT 10 - VIDEO - Compaq Extensions - SET MASTER MODE OF CURRENT CONTROLLER
  6883.     AX = BF02h
  6884.     BH = master mode
  6885.         04h CGA
  6886.         05h EGA
  6887.         07h MDA
  6888. Return: nothing
  6889. SeeAlso: AX=BF03h
  6890. --------b-10BF03BX0000-----------------------
  6891. INT 10 - VIDEO - Compaq Extensions - GET ENVIRONMENT
  6892.     AX = BF03h
  6893.     BX = 0000h
  6894. Return: BH = active monitor
  6895.         (00h = external, 01h = internal, 03h both, 04h neither)
  6896.     BL = master mode (see #0121)
  6897.     CH = ASIC type and version
  6898.         00h (reserved, very early Compaq VGCs)
  6899.         31h if QVision VGA
  6900.     CL = switchable VDU modes supported (see #0122)
  6901.     DH = internal monitor type (see #0123)
  6902.     DL = external monitor type (see #0123)
  6903. SeeAlso: AX=1A00h,AX=BF00h,AX=BF01h,AX=BF02h,AX=BF11h
  6904.  
  6905. (Table 0121)
  6906. Values for Compaq video master mode:
  6907.  00h    switchable VDU not present
  6908.  04h    CGA
  6909.  05h    EGA
  6910.  07h    MDA
  6911.  08h    switchable LCD controller present
  6912.  09h    plasma VGA
  6913.  0Ah    TFT (active-matrix) VGA
  6914.  
  6915. Bitfields for Compaq switchable VDU modes support:
  6916. Bit(s)    Description    (Table 0122)
  6917.  0    CGA supported
  6918.  1,2    reserved (1)
  6919.  3    MDA supported
  6920.  4    BitBLT engine available
  6921.  5    132-column support availble
  6922.  6    640x480x256 mode available
  6923.  7    8-bit DAC mode available
  6924.  
  6925. (Table 0123)
  6926. Values for Compaq monitor type:
  6927.  00h    none
  6928.  01h    dual-mode monitor
  6929.  02h    5153 RGB monitor (RGBI 16-color)
  6930.  03h    Compaq Color monitor
  6931.  04h    640x400 flat panel (Plasma CGA)
  6932.  05h    VGC monochrome
  6933.  06h    VGC color
  6934.  07h    8-level mono LCD VGA (internal)
  6935.     1024x768 mono VGA (external)
  6936.  08h    16-level mono plasma VGA (internal)
  6937.     1024x768 color VGA (external)
  6938.  09h    4-level mono LCD CGA
  6939.  0Ah    16-level mono LCD VGA
  6940.  0Bh    active-matrix color VGA
  6941.  0Ch    active-matrix mono VGA
  6942.  0Dh    STN color VGA
  6943. --------b-10BF04-----------------------------
  6944. INT 10 - VIDEO - Compaq Extensions - SET MODE SWITCH DELAY
  6945.     AX = BF04h
  6946.     BH = new state of delay (00h enabled, 01h disabled)
  6947. Return: nothing
  6948. Note:    the 04/08/93 sytem ROM appears to use BL instead of BH; a future
  6949.       version of the list will provide more definite information
  6950. SeeAlso: AX=BF05h
  6951. --------b-10BF05-----------------------------
  6952. INT 10 - VIDEO - Compaq Extensions - ENABLE/DISABLE DISPLAY
  6953.     AX = BF05h
  6954.     BH = new state of video
  6955.         00h off
  6956.         01h on
  6957. Return: nothing
  6958. Note:    the 04/08/93 sytem ROM appears to use BL instead of BH; a future
  6959.       version of the list will provide more definite information
  6960. SeeAlso: AH=12h/BL=36h,AX=BF04h
  6961. --------b-10BF06-----------------------------
  6962. INT 10 - VIDEO - Compaq SLT/286 - READ GRAY SCALE TABLE
  6963.     AX = BF06h
  6964.     CL = address to be read from gray scale table
  6965. Return: AL = bit 3-0 - Value read from gray scale table
  6966.     CL = address to be read from gray scale table
  6967. SeeAlso: AH=12h/BL=33h,AX=BF07h
  6968. --------b-10BF07-----------------------------
  6969. INT 10 - VIDEO - Compaq SLT/286 - WRITE GRAY SCALE TABLE
  6970.     AX = BF07h
  6971.     CH = value to write to gray scale table
  6972.     CL = address to be written to gray scale table
  6973. Return: nothing
  6974. SeeAlso: AX=BF06h,AX=BF08h
  6975. --------b-10BF08-----------------------------
  6976. INT 10 - VIDEO - Compaq SLT/286 - WRITE COLOR MIX REGISTERS
  6977.     AX = BF08h
  6978.     CH = bits 7-4 green weight
  6979.          bits 3-0 blue weight
  6980.     CL = bits 7-4 unused
  6981.          bits 3-0 red weight
  6982. Return: nothing
  6983. SeeAlso: AH=12h/BL=33h,AX=BF07h
  6984. --------b-10BF09-----------------------------
  6985. INT 10 - VIDEO - Compaq Extensions - TURN ON REVERSE VIDEO
  6986.     AX = BF09h
  6987. Return: CF clear
  6988. Notes:    sets bit 6 of port 03CEh index 81h; in some cases also sets index 84h
  6989.       to 6Fh and index 83h to 04h
  6990.     supported by at least the QVision board and the LTE Lite ROM BIOS
  6991. SeeAlso: AX=BF0Ah,AX=BF0Bh
  6992. --------b-10BF0A-----------------------------
  6993. INT 10 - VIDEO - Compaq Extensions - TURN OFF REVERSE VIDEO
  6994.     AX = BF0Ah
  6995. Return: CF clear
  6996. Notes:    clears bit 6 of port 03CEh index 81h; in some cases also sets index 84h
  6997.       to 80h and index 83h to FBh
  6998.     supported by at least the QVision board and the LTE Lite ROM BIOS
  6999. SeeAlso: AX=BF09h,AX=BF0Bh
  7000. --------b-10BF0B-----------------------------
  7001. INT 10 - VIDEO - Compaq Extensions - CHECK WHETHER VIDEO REVERSED
  7002.     AX = BF0Bh
  7003. Return: CF clear
  7004.     AX = state (0000h normal video, 0001h reverse video)
  7005. Note:    supported by at least the QVision board and the LTE Lite ROM BIOS
  7006. SeeAlso: AX=BF09h,AX=BF0Ah
  7007. --------b-10BF0C-----------------------------
  7008. INT 10 - VIDEO - Compaq Extensions - SET DAC 6-BIT MODE
  7009.     AX = BF0Ch
  7010. Return: CF clear
  7011. Desc:    specify that video DAC registers use only six bits of color info
  7012. Note:    supported by at least the QVision board and the SystemPro XL ROM BIOS
  7013. SeeAlso: AX=BF0Dh,AX=BF0Eh
  7014. --------b-10BF0D-----------------------------
  7015. INT 10 - VIDEO - Compaq Extensions - SET DAC 8-BIT MODE
  7016.     AX = BF0Dh
  7017. Return: CF clear
  7018. Desc:    specify that video DAC registers use all eight bits of color info
  7019. Note:    supported by at least the QVision board and the SystemPro XL ROM BIOS
  7020. SeeAlso: AX=BF0Ch,AX=BF0Eh
  7021. --------b-10BF0E-----------------------------
  7022. INT 10 - VIDEO - Compaq Extensions - CHECK DAC 6-BIT/8-BIT mode
  7023.     AX = BF0Eh
  7024. Return: CF clear
  7025.     AL = DAC mode
  7026.         00h in 6-bit mode
  7027.         01h in 8-bit mode
  7028. Note:    supported by at least the QVision board and the SystemPro XL ROM BIOS
  7029. SeeAlso: AX=BF0Ch,AX=BF0Dh
  7030. --------b-10BF0F-----------------------------
  7031. INT 10 - VIDEO - Compaq Extensions - SET HIGH ADRESS MAP REGISTER
  7032.     AX = BF0Fh
  7033.     BX = high address map location in megabytes, or
  7034.         0000h to disable high address map, or
  7035.         FFFFh to let ROM configure high address map
  7036. Return: CF clear
  7037.     AX = previous value of high address map register
  7038. Notes:    supported by at least the QVision board and the SystemPro XL and LTE
  7039.       Lite ROM BIOSes
  7040. SeeAlso: AX=BF10h
  7041. --------b-10BF10-----------------------------
  7042. INT 10 - VIDEO - Compaq Extensions - GET HIGH ADDRESS MAP REGISTER
  7043.     AX = BF10h
  7044. Return: CF clear
  7045.     AX = current value of high address map register
  7046. Notes:    supported by at least the QVision board and the SystemPro XL and LTE
  7047.       Lite ROM BIOSes
  7048.     the Compaq QVision documentation (October 1993) says the value is
  7049.       returned in BX, but this appears to be one of many typos
  7050. SeeAlso: AX=BF0Fh
  7051. --------b-10BF11-----------------------------
  7052. INT 10 - VIDEO - Compaq Extensions - GET EXTENDED ENVIRONMENT
  7053.     AX = BF11h
  7054. Return: AL = BFh if supported
  7055.         CF clear
  7056.         ES:DI -> ASCII signature "COMPAQ"
  7057.         ES:SI -> advanced functionality table (see #0124)
  7058. Note:    supported by at least the QVision board and the LTE Lite and ProSignia
  7059.       ROM BIOSes
  7060. SeeAlso: AX=1A00h,AX=BF03h
  7061.  
  7062. Bitfields for Compaq advanced video functionality:
  7063. Bit(s)    Description    (Table 0124)
  7064.  31    future graphics extensions (reserved, set to 0)
  7065.  30-16    reserved
  7066.  15-12    available video memory in 256K blocks, less one (0000 = 256K, etc.)
  7067.  11-8    reserved
  7068.  7    QVision modes supported
  7069.  6    Advanced VGA modes supported
  7070.  5    Accelerated VGA modes supported
  7071.  4    standard VGA modes supported
  7072.  3-2    reserved
  7073.  1    132-column modes supported
  7074.  0    reserved
  7075. --------b-10BF12-----------------------------
  7076. INT 10 - VIDEO - Compaq Extensions - NEW ACTIVE MONITOR
  7077.     AX = BF12h
  7078.     BH reserved
  7079.     BL = function mask (see #0125)
  7080. Return: CF clear
  7081. Notes:    this function is a NOP if the VGA subsystem is inactive or the current
  7082.       Display Combination Code is 10h or higher
  7083.     supported by at least the QVision board and the LTE Lite and ProSignia
  7084.       ROM BIOSes
  7085. SeeAlso: AX=BF01h,AX=BF02h
  7086.  
  7087. Bitfields for function mask:
  7088. Bit(s)    Description    (Table 0125)
  7089.  7    command mode
  7090.     if set, bits 1 and 0 make the monitor active when set
  7091.     if clear, bits 1 and 0 toggle the monitor's state when set
  7092.  6-2    reserved
  7093.  1    internal monitor
  7094.  0    external monitor
  7095. --------b-10BF13-----------------------------
  7096. INT 10 - VIDEO - Compaq QVision - GAMMA CORRECTION
  7097.     AX = BF13h
  7098.     BL = subfunction
  7099.         00h load gamma correction table for true-color mode
  7100.         DS = BIOS data segment
  7101.         01h set palette RAM bypass
  7102.     BH = 00h
  7103. Return: nothing
  7104. Note:    these functions must be called after a video mode set, and are in
  7105.       effect only for the current video mode
  7106. --------V-10BFA0BXADAD-----------------------
  7107. INT 10 - VIDEO - Compaq ADAPT.COM - INSTALLATION CHECK
  7108.     AX = BFA0h
  7109.     BX = ADADh
  7110. Return: AX = BDBDh if newer ADAPT.COM installed
  7111.         BX = BCD version (BH = major, BL = minor)
  7112.         CL = ???
  7113.         CH = ???
  7114.         DL = ???
  7115.     AX = ADADh if older version of ADAPT.COM installed
  7116. Program: ADAPT is Compaq's Advanced Display Attribute Programming Tool, an
  7117.       optionally-resident utility for setting display colors and cursor
  7118.       size; when resident, it also includes a screen blanker
  7119. SeeAlso: AX=BFA1h,AX=BFA2h,AX=DFA5h
  7120. Index:    screen saver;ADAPT
  7121. --------V-10BFA1-----------------------------
  7122. INT 10 - VIDEO - Compaq ADAPT.COM - GET ???
  7123.     AX = BFA1h
  7124. Return: AX = BDBEh if supported
  7125.         CH = current value of ???
  7126.         DL = current value of ???
  7127. SeeAlso: AX=BFA0h,AX=BFA2h
  7128. --------V-10BFA2-----------------------------
  7129. INT 10 - VIDEO - Compaq ADAPT.COM - SET ???
  7130.     AX = BFA2h
  7131.     CH = new value for ???
  7132.     DL = new value for ???
  7133. Return: AX = BDBEh if supported
  7134. SeeAlso: AX=BFA0h,AX=BFA1h
  7135. --------A-10C0-------------------------------
  7136. INT 10 - CU Writer v1.4 - GO TO TEXT ROW AND COLUMN
  7137.     AH = C0h
  7138.     ???
  7139. Return: ???
  7140. SeeAlso: AH=B1h,AH=C1h,AH=C2h,AH=C3h,AH=C4h
  7141. --------V-10C000-----------------------------
  7142. INT 10 U - S3 SpeedUp v3.10 - INSTALLATION CHECK
  7143.     AX = C000h
  7144. Return: AX = FFFFh if installed
  7145.         DX = version number (binary, DH=major, DL=minor)
  7146.         BX = resident code segment
  7147. Program: S3SPDUP is a freeware TSR by Dietmar Meschede to improve the speed
  7148.       of chained video modes (both VESA and VGA Mode 13) on S3-chipset
  7149.       video cards
  7150. SeeAlso: AX=C001h,AX=C002h,AX=C003h
  7151. --------V-10C001-----------------------------
  7152. INT 10 U - S3 SpeedUp v3.10 - GET ACTIVE OPTIONS
  7153.     AX = C001h
  7154. Return: AX = FFFFh if function supported
  7155.         BX = currently active options (see #0126)
  7156. SeeAlso: AX=C000h,AX=C002h,AX=C003h
  7157.  
  7158. Bitfields for S3SpeedUp options:
  7159. Bit(s)    Description    (Table 0126)
  7160.  0    speed up banked VESA modes
  7161.  1    speed up 320x200 VGA mode 13
  7162. SeeAlso: #0132
  7163. --------V-10C002-----------------------------
  7164. INT 10 U - S3 SpeedUp v3.10 - SET ACTIVE OPTIONS
  7165.     AX = C002h
  7166.     BX = new value for active options (see #0126)
  7167. Return: AX = FFFFh if function supported
  7168. SeeAlso: AX=C000h,AX=C001h,AX=C003h
  7169. --------V-10C003-----------------------------
  7170. INT 10 U - S3 SpeedUp v3.10 - GET ??? FLAGS
  7171.     AX = C003h
  7172. Return: AX = FFFFh if function supported
  7173.         BX = ??? bit flags
  7174.         bit 0: ???
  7175.         bit 1: ???
  7176. SeeAlso: AX=C000h,AX=C001h,AX=C002h
  7177. --------A-10C1-------------------------------
  7178. INT 10 - CU Writer v1.4 - OUTPUT TEXT
  7179.     AH = C1h
  7180.     ???
  7181. Return: ???
  7182. SeeAlso: AH=C0h,AH=C2h,AH=C3h,AH=C4h
  7183. --------A-10C2-------------------------------
  7184. INT 10 - CU Writer v1.4 - REVERSE TEXT
  7185.     AH = C2h
  7186.     ???
  7187. Return: ???
  7188. SeeAlso: AH=C0h,AH=C1h,AH=C3h,AH=C4h
  7189. --------A-10C3-------------------------------
  7190. INT 10 - CU Writer v1.4 - TEXT BAR
  7191.     AH = C3h
  7192.     ???
  7193. Return: ???
  7194. SeeAlso: AH=C0h,AH=C1h,AH=C4h
  7195. --------A-10C4-------------------------------
  7196. INT 10 - CU Writer v1.4 - TEXT MENU
  7197.     AH = C4h
  7198.     ???
  7199. Return: ???
  7200. SeeAlso: AH=C0h,AH=C1h,AH=C3h,AH=D0h
  7201. --------V-10CB00-----------------------------
  7202. INT 10 - UNCHAIN - SAVE CURRENT VGA REGISTERS
  7203.     AX = CB00h
  7204. Note:    combined with AX=CB06h, this function permits the use of video mode
  7205.       13h together with the VGA's unchained mode
  7206. SeeAlso: AX=CB06h,AX=CBFFh
  7207. --------V-10CB01-----------------------------
  7208. INT 10 - UNCHAIN - UPDATE PAGE 1 OFFSET
  7209.     AX = CB01h
  7210.     BX = offset of page 1
  7211. Return: nothing
  7212. Desc:    inform UNCHAIN of the location of video page 1 in video memory; the
  7213.       default is 0000h
  7214. SeeAlso: AX=CB02h,AX=CB03h,AX=CB04h,AX=CBFFh
  7215. --------V-10CB02-----------------------------
  7216. INT 10 - UNCHAIN - UPDATE PAGE 2 OFFSET
  7217.     AX = CB02h
  7218.     BX = offset of page 2
  7219. Return: nothing
  7220. Desc:    inform UNCHAIN of the location of video page 2 in video memory; the
  7221.       default is 3E80h (16000, for 320x200)
  7222. SeeAlso: AX=CB00h,AX=CB01h,AX=CB03h,AX=CB04h
  7223. --------V-10CB03-----------------------------
  7224. INT 10 - UNCHAIN - UPDATE PAGE 3 OFFSET
  7225.     AX = CB03h
  7226.     BX = offset of page 3
  7227. Return: nothing
  7228. Desc:    inform UNCHAIN of the location of video page 3 in video memory; the
  7229.       default is 7D00h (32000, for 320x200)
  7230. SeeAlso: AX=CB01h,AX=CB02h,AX=CB04h
  7231. --------V-10CB04-----------------------------
  7232. INT 10 - UNCHAIN - UPDATE PAGE 4 OFFSET
  7233.     AX = CB04h
  7234.     BX = offset of page 4
  7235. Return: nothing
  7236. Desc:    inform UNCHAIN of the location of video page 4 in video memory; the
  7237.       default is BB80h (48000, for 320x200)
  7238. SeeAlso: AX=CB01h,AX=CB02h,AX=CB03h,AX=CB05h
  7239. --------V-10CB05-----------------------------
  7240. INT 10 - UNCHAIN - SAVE PALETTE
  7241.     AX = CB05h
  7242. Return: nothing
  7243. SeeAlso: AX=CB00h,AX=CB06h
  7244. --------V-10CB06-----------------------------
  7245. INT 10 - UNCHAIN - RESTORE VGA REGISTERS
  7246.     AX = CB06h
  7247. Return: nothing
  7248. SeeAlso: AX=CB00h,AX=CB05h,AX=CBFFh
  7249. --------V-10CBFF-----------------------------
  7250. INT 10 - UNCHAIN - INSTALLATION CHECK
  7251.     AX = CBFFh
  7252. Return: AX = CCBBh if installed
  7253. Program: UNCHAIN is a TSR by Colin Buckley which permits use of Borland
  7254.       development tools with Mode X video in the absence of a second
  7255.       monitor
  7256. SeeAlso: AX=CB00h,AX=CB01h,AX=CB06h
  7257. --------V-10CC00-----------------------------
  7258. INT 10 - VIDEO - UltraVision - GET STATUS (INSTALLATION CHECK)
  7259.     AX = CC00h
  7260.     SI = magic value 0000h (if checking version)
  7261. Return: CX = product signature
  7262.         ABCDh UltraVision
  7263.         5546h ('UF') UltraFont
  7264.     AL = Ultravision extensions
  7265.         00h enabled
  7266.         FFh disabled
  7267.     AH = card designator
  7268.     BX:00F0h -> palette values (for compatibility with NEWFONT)
  7269.     DX = support for high resolution modes
  7270.         00h not active
  7271.         01h active
  7272.     SI = UltraVision version number (v1.2+), high byte=major,low byte=minor
  7273.         unchanged for versions <1.2
  7274. Note:    UltraFont is a simplified version of UltraVision for Toshiba;
  7275.       only the signature in CX and the status in AL will be returned
  7276. SeeAlso: AX=CC01h,AX=CC02h
  7277. --------V-10CC01-----------------------------
  7278. INT 10 - VIDEO - UltraVision - DISABLE EXTENSIONS
  7279.     AX = CC01h
  7280. Return: nothing
  7281. Notes:    subsequent BIOS calls will be passed through to previous handler
  7282.     should be followed immediately by mode set to restore normal EGA/VGA
  7283.       state
  7284. SeeAlso: AX=CC02h
  7285. --------V-10CC02-----------------------------
  7286. INT 10 - VIDEO - UltraVision - ENABLE EXTENSIONS
  7287.     AX = CC02h
  7288. Return: nothing
  7289. Note:    should be followed immediately by mode set to restore previous
  7290.       UltraVision state
  7291. SeeAlso: AX=CC01h
  7292. --------U-10CCAB-----------------------------
  7293. INT 10 - HiFont - INSTALLATION CHECK
  7294.     AX = CCABh
  7295. Return: AX = ABCCh
  7296. Program: HiFont is a 8x19 font driver for standard VGA by Solar Designer
  7297. --------V-10CD00-----------------------------
  7298. INT 10 - VIDEO - UltraVision - LOAD ULTRAVISION PALETTE (color EGA,VGA)
  7299.     AX = CD00h
  7300.     CL = palette table number (01h-07h for v1.x, 01h-0Fh for v2+)
  7301.     DS:DX -> 16-byte palette register list (colors for registers 00h-0Fh)
  7302. Return: nothing
  7303. Notes:    if palette locking is in effect for the current mode, the new colors
  7304.       will be displayed immediately; otherwise, the system reverts to the
  7305.       default palette
  7306.     palette table 0 is reserved for the default palette and cannot be set
  7307.     UltraVision always sets the border color to black
  7308. SeeAlso: AX=CD01h,AX=CD02h
  7309. --------V-10CD01-----------------------------
  7310. INT 10 - VIDEO - UltraVision - SET PALETTE LOCKING STATUS (color EGA,VGA)
  7311.     AX = CD01h
  7312.     CL = palette locking value
  7313.         00h none
  7314.         01h text modes only (02h,03h)
  7315.         FFh all modes (all standard color text and graphics modes)
  7316. Return: nothing
  7317. Notes:    intended for video modes with 16 or fewer colors
  7318. SeeAlso: AX=1000h,AX=1002h,AX=CD00h,AX=CD03h
  7319. --------V-10CD02-----------------------------
  7320. INT 10 - VIDEO - UltraVision - GET ULTRAVISION PALETTE (EGA,VGA)
  7321.     AX = CD02h
  7322. Return: CL = palette table number
  7323.     DS:DX -> 17-byte palette register list (see #0127)
  7324.     DS:SI -> current font names table (see #0128,#0129)
  7325. Note:    only the font names are valid on monochrome EGA systems
  7326. SeeAlso: AX=1009h,AX=CD00h
  7327.  
  7328. Format of UltraVision palette register list:
  7329. Offset    Size    Description    (Table 0127)
  7330.  00h 16 BYTEs    colors for palette registers 00h through 0Fh
  7331.  10h    BYTE    border color
  7332.  
  7333. Format of UltraVision v2+ current font names table:
  7334. Offset    Size    standard EGA    HiRes EGA    VGA    (Table 0128)
  7335.  00h  8 BYTEs    N/A        F19 font    F20 font
  7336.  08h  8 BYTEs    F14 font    F14 font    F14 font
  7337.  10h  8 BYTEs    N/A        F11 font    F10 font
  7338.  18h  8 BYTEs    F8 font        F8 font        F8 font
  7339.  
  7340. Format of UltraVision v1.x current font names table:
  7341. Offset    Size    HiRes EGA    (Table 0129)
  7342.  00h  8 BYTEs    F19/F14 font
  7343.  08h  8 BYTEs    F11/F8 font
  7344. --------V-10CD03-----------------------------
  7345. INT 10 - VIDEO - UltraVision - GET PALETTE LOCKING STATUS (color EGA,VGA)
  7346.     AX = CD03h
  7347. Return: CL = palette locking value
  7348.         00h none
  7349.         01h text modes only
  7350.         FFh all modes
  7351. SeeAlso: AX=CD01h
  7352. --------V-10CD04-----------------------------
  7353. INT 10 - VIDEO - UltraVision - GET UltraVision TEXT MODE (EGA,VGA)
  7354.     AX = CD04h
  7355. Return: AL = mode number (see #0130)
  7356. SeeAlso: AH=0Fh,AX=CC00h,AH=CDh
  7357.  
  7358. (Table 0130)
  7359. Values for UltraVision video mode number:
  7360.  11h    80x25
  7361.  12h    80x43, 80x50
  7362.  13h    80x34, 80x36
  7363.  14h    80x60, 80x63
  7364.  19h    94x25
  7365.  1Ah    94x43, 94x50
  7366.  1Bh    94x36
  7367.  1Ch    94x63
  7368.  21h    108x25
  7369.  22h    108x43, 108x50
  7370.  23h    107x34, 108x36
  7371.  24h    108x60, 108x63
  7372.  31h    120x25
  7373.  32h    120x43, 120x50
  7374.  33h    132x25
  7375.  34h    132x44, 132x50
  7376.  39h    120x36
  7377.  3Ah    120x63
  7378.  3Bh    132x36
  7379.  3Ch    132x60
  7380. Index:    video modes;UltraVision
  7381. --------V-10CD05-----------------------------
  7382. INT 10 - VIDEO - UltraVision - SET CURSOR TYPE (EGA,VGA)
  7383.     AX = CD05h
  7384.     CL = type
  7385.         00h line cursor
  7386.         FFh box cursor
  7387. Return: nothing
  7388. Note:    sets default cursor type for text-based programs
  7389. SeeAlso: AH=01h,AX=CD06h
  7390. --------V-10CD06-----------------------------
  7391. INT 10 - VIDEO - UltraVision - GET CURSOR TYPE (EGA,VGA)
  7392.     AX = CD06h
  7393. Return: CL = type
  7394.         00h line cursor
  7395.         FFh box cursor
  7396. SeeAlso: AH=03h,AX=CD05h
  7397. --------V-10CD07-----------------------------
  7398. INT 10 - VIDEO - UltraVision v1.2+ - SET UNDERLINE STATUS (EGA,VGA)
  7399.     AX = CD07h
  7400.     CL = hardware underline status (see #0131)
  7401.     BL = foreground color for normal text (FFh = current)
  7402.     BH = foreground color for bright text (FFh = current)
  7403. Return: CL = hardware underline status
  7404.     BL = current foreground color for normal text
  7405.     BH = current foreground color for bright text
  7406. Notes:    when underline or strikeout is enabled in color text modes, the
  7407.       specified colors will be assigned temporarily to colors 01h and 09h,
  7408.       allowing affected text to match non-underlined text.    The color
  7409.       remapping uses values from the current onscreen palette regardless
  7410.       of the palette locking status (see AX=CD01h)
  7411.     specify the standard colors (BL=01h,BH=09h) to enable underline or
  7412.       strikeout without color remapping
  7413. SeeAlso: AX=CD08h
  7414.  
  7415. (Table 0131)
  7416. Values for hardware underline status:
  7417.  00h    off (color systems only)
  7418.  01h    underline below characters
  7419.  02h    strike through characters
  7420. --------V-10CD08-----------------------------
  7421. INT 10 - VIDEO - UltraVision v1.2+ - GET UNDERLINE STATUS (EGA,VGA)
  7422.     AX = CD08h
  7423. Return: CL = hardware underline status (see #0131)
  7424.     BL = foreground color for normal text
  7425.     BH = foreground color for bright text
  7426. Note:    only CL is valid on monochrome EGA systems
  7427. SeeAlso: AX=CD07h
  7428. --------V-10CD10-----------------------------
  7429. INT 10 - VIDEO - UltraVision - LOAD USER FONT (EGA,VGA)
  7430.     AX = CD10h
  7431.     BH = bytes per character (08h,0Ah,0Bh,0Eh,13h,14h)
  7432.     CX = ABCDh load 9xN alternate font (v2+)
  7433.        else number of characters to load
  7434.         DX = character offset into font table
  7435.         DS:SI -> 8-byte ASCII font name
  7436.     ES:BP -> font definitions
  7437. Return: AX = FFFFh if invalid font parameters
  7438. Notes:    loads the designated characters into UltraVision's resident font area
  7439.     should be followed by a video mode set to reload character generator
  7440. SeeAlso: AX=1100h,AX=1103h
  7441. --------V-10CD-------------------------------
  7442. INT 10 - VIDEO - UltraVision - SET ULTRAVISION TEXT MODE (EGA,VGA)
  7443.     AH = CDh
  7444.     AL = text mode number (see #0130)
  7445. Return: AX = CDCDh if invalid mode
  7446. SeeAlso: AX=CD04h
  7447. --------A-10D0-------------------------------
  7448. INT 10 - CU Writer v1.4 - LOAD PICTURE
  7449.     AH = D0h
  7450.     ???
  7451. Return: ???
  7452. SeeAlso: AH=B0h"CU Writer",AH=C4h
  7453. --------V-10D0-------------------------------
  7454. INT 10 U - VIDEO - HP 100LX/200LX - SET ZOOM MODE
  7455.     AH = D0h
  7456.     AL = zoom mode
  7457.         02h 80x25 mono
  7458.         03h 80x25 color
  7459.         80h 64x18 mono
  7460.         81h 64x18 color
  7461.         82h 40x25 mono
  7462.         83h 40x25 color
  7463.         84h 40x16 mono
  7464.         85h 40x16 color
  7465. Return: nothing
  7466. Note:    zoom mode can only be changed within zoom modes of the same color
  7467.       scheme; if needed, set to mono/color with AH=00h,AL=02h/03h; with
  7468.       mono video modes AL=07h or AL=21h only 80x25 and 40x16 will work
  7469.     the current zoom mode is stored in the BIOS data area at 0040h:009Fh
  7470. SeeAlso: AH=D1h,AH=D4h
  7471. --------V-10D000-----------------------------
  7472. INT 10 U - S3VBE/Core2.0 v3.02+ - INSTALLATION CHECK
  7473.     AX = D000h
  7474. Return: AX = FFFFh if installed
  7475.         BX = resident code segment
  7476.         DX = version (binary, DH = major, DL = minor)
  7477. Program: S3VBE/Core2.0 is a freeware TSR by Dietmar Meschede to provide
  7478.       VESA 2.0 services on S3-based video cards with VESA 1.2 BIOS
  7479. SeeAlso: AX=D001h"S3VBE",AX=D002h"S3VBE",AX=D003h"S3VBE",AX=D005h"S3VBE"
  7480. --------V-10D001-----------------------------
  7481. INT 10 U - S3VBE/Core2.0 v3.02+ - GET ACTIVE OPTIONS
  7482.     AX = D001h
  7483. Return: AX = FFFFh if supported
  7484.         BX = currently active options (see #0132)
  7485. SeeAlso: AX=D000h"S3VBE",AX=D002h"S3VBE"
  7486.  
  7487. Bitfields for S3VBE options:
  7488. Bit(s)    Description    (Table 0132)
  7489.  0    VESA VBE v2.0 extensions enabled
  7490.  1    linear frame buffer enabled
  7491.  2    low-resolution video mode support enabled
  7492. SeeAlso: #0126
  7493. --------V-10D002-----------------------------
  7494. INT 10 U - S3VBE/Core2.0 v3.02+ - SET ACTIVE OPTIONS
  7495.     AX = D002h
  7496.     BX = new active options (see #0132)
  7497. Return: AX = FFFFh if supported
  7498. SeeAlso: AX=D000h"S3VBE",AX=D001h"S3VBE"
  7499. --------V-10D003-----------------------------
  7500. INT 10 U - S3VBE/Core2.0 v3.10+ - ???
  7501.     AX = D003h
  7502. Return: AX = FFFFh if supported
  7503.         BX = ??? (0001h for v3.10)
  7504. SeeAlso: AX=D000h"S3VBE",AX=D001h"S3VBE",AX=D004h"S3VBE",AX=D005h"S3VBE"
  7505. --------V-10D004-----------------------------
  7506. INT 10 U - S3VBE/Core2.0 v3.10+ - ???
  7507.     AX = D004h
  7508.     ???
  7509. Return: AX = FFFFh if supported
  7510.     BX destroyed
  7511. Note:    called by S3 SpeedUp (see AX=C000h)
  7512. SeeAlso: AX=D000h"S3VBE",AX=D001h"S3VBE",AX=D003h"S3VBE",AX=D005h"S3VBE"
  7513. --------V-10D005-----------------------------
  7514. INT 10 U - S3VBE/Core2.0 v3.10+ - ???
  7515.     AX = D005h
  7516.     ???
  7517. Return: AX = FFFFh if supported
  7518.     BX destroyed
  7519. Note:    called by S3 SpeedUp (see AX=C000h)
  7520. SeeAlso: AX=D000h"S3VBE",AX=D001h"S3VBE",AX=D003h"S3VBE",AX=D004h"S3VBE"
  7521. --------V-10D1-------------------------------
  7522. INT 10 U - VIDEO - HP 100LX/200LX - INTERNAL - ???
  7523.     AH = D1h
  7524.     AL = 01h
  7525. Return: ???
  7526. Note:    called by AH=D0h
  7527. SeeAlso: AH=D0h,AH=D4h
  7528. --------V-10D4-------------------------------
  7529. INT 10 U - VIDEO - HP 100LX/200LX - INTERNAL - ???
  7530.     AH = D4h
  7531.     AL = 29h
  7532. Return: ???
  7533. Note:    called by AH=D0h
  7534. SeeAlso: AH=D0h,AH=D1h
  7535. --------V-10D5-------------------------------
  7536. INT 10 - Netroom SCRNCLK - ???
  7537.     AH = D5h
  7538.     ???
  7539. Return: ???
  7540. Program: SCRNCLK is a "cloaked" screen accelerator included with Netroom
  7541. --------t-10DAAD-----------------------------
  7542. INT 10 - TSRUNIT v1.10 - INSTALLATION CHECK
  7543.     AX = DAADh
  7544.     BX = check signature (different for each TSR)
  7545.     CX = 0000h
  7546. Return: CX = return signature (nonzero) if installed
  7547.         ES = program segment prefix
  7548. Program: TSRUNIT is a Turbo Pascal unit for creating TSRs by Nir Sofer
  7549. --------V-10DFA5-----------------------------
  7550. INT 10 U - VIDEO - Compaq ADAPT.COM - GET ??? DATA AREA
  7551.     AX = DFA5h
  7552. Return: AX = BDBFh if supported
  7553.         ES:DI -> ??? data area
  7554.         BX = ES
  7555. SeeAlso: AX=BFA0h
  7556. --------V-10EF-------------------------------
  7557. INT 10 - VIDEO - MSHERC.COM - GET VIDEO ADAPTER TYPE AND MODE
  7558.     AH = EFh
  7559. Return: DL = video adapter type
  7560.         00h original Hercules
  7561.         01h Hercules Plus     (port 03BAh reads x001xxxxx)
  7562.         02h Hercules InColor (port 03BAh reads x101xxxxx)
  7563.         FFh not a Hercules-compatible card (port 03BAh bit 7 not pulsing)
  7564.     DH = memory mode byte
  7565.         00h "half" mode
  7566.         01h "full" mode
  7567.         FFh not a Hercules-compatible card
  7568. Program: MSHERC.COM/QBHERC.COM is a support program for the Microsoft Quick
  7569.       languages which makes their graphics libraries compatible with a
  7570.       Hercules card by adding video modes 08h and 88h, and supporting
  7571.       text in the new graphics modes.
  7572. Notes:    while in mode 08h or 88h, INT 10 supports the Hercules card much like
  7573.       a CGA.
  7574.     MSHERC performs an installation check by setting DL=FFh and testing
  7575.       whether it has been changed on return, which causes it to reinstall
  7576.       itself when no HGC is present (or HGC emulation has temporarily been
  7577.       disabled); a better installation check would be to use DX=80FFh and
  7578.       check whether DX has been changed
  7579.     reportedly returns DH=00h on some not-entirely-Hercules-compatible
  7580.       cards
  7581. Index:    installation check;MSHERC
  7582. --------V-10F0-------------------------------
  7583. INT 10 - EGA Register Interface Library - READ ONE REGISTER
  7584.     AH = F0h
  7585.     BL = register number
  7586.     BH = 00h
  7587.     DX = group index (see #0133)
  7588. Return: BL = data
  7589. Note:    the RIL is provided by EGA.SYS, the Microsoft Mouse driver, the OS/2
  7590.       compatibility box, and others
  7591. SeeAlso: AH=F1h,AH=F2h,INT 2F/AX=BC00h
  7592.  
  7593. (Table 0133)
  7594. Values for group index:
  7595.  Pointer/data chips
  7596.  00h    CRT Controller (25 reg) 3B4h mono modes, 3D4h color modes
  7597.  08h    Sequencer (5 registers) 3C4h
  7598.  10h    Graphics Controller (9 registers) 3CEh
  7599.  18h    Attribute Controller (20 registers) 3C0h
  7600.  Single registers
  7601.  20h    Miscellaneous Output register 3C2h
  7602.  28h    Feature Control register (3BAh mono modes, 3DAh color modes)
  7603.  30h    Graphics 1 Position register 3CCh
  7604.  38h    Graphics 2 Position register 3CAh
  7605. --------V-10F1-------------------------------
  7606. INT 10 - EGA Register Interface Library - WRITE ONE REGISTER
  7607.     AH = F1h
  7608.     DX = group index (see #0133)
  7609.         if single register:
  7610.         BL = value to write
  7611.         otherwise
  7612.         BL = register number
  7613.         BH = value to write
  7614. Return: BL = data
  7615. Note:    the RIL is provided by EGA.SYS, the Microsoft Mouse driver, the OS/2
  7616.       compatibility box, and others
  7617. SeeAlso: AX=7F05h,AH=F0h,AH=F3h
  7618. --------V-10F2-------------------------------
  7619. INT 10 - EGA Register Interface Library - READ REGISTER RANGE
  7620.     AH = F2h
  7621.     CH = starting register number
  7622.     CL = number of registers (>1)
  7623.     DX = group index (00h,08h,10h,18h) (see #0133)
  7624.     ES:BX -> buffer, CL bytes
  7625. Return: nothing
  7626. Note:    the RIL is provided by EGA.SYS, the Microsoft Mouse driver, the OS/2
  7627.       compatibility box, and others
  7628. SeeAlso: AH=F0h,AH=F3h
  7629. --------V-10F3-------------------------------
  7630. INT 10 - EGA Register Interface Library - WRITE REGISTER RANGE
  7631.     AH = F3h
  7632.     CH = starting register
  7633.     CL = number of registers (>1)
  7634.     DX = group index (00h,08h,10h,18h) (see #0133)
  7635.     ES:BX -> buffer, CL bytes
  7636. Return: nothing
  7637. Note:    the RIL is provided by EGA.SYS, the Microsoft Mouse driver, the OS/2
  7638.       compatibility box, and others
  7639. SeeAlso: AX=7F05h,AH=F1h,AH=F2h
  7640. --------V-10F4-------------------------------
  7641. INT 10 - EGA Register Interface Library - READ REGISTER SET
  7642.     AH = F4h
  7643.     CX = number of registers to read (>1)
  7644.     ES:BX -> table of register records (see #0134)
  7645. Return: register values in table filled in
  7646. Note:    the RIL is provided by EGA.SYS, the Microsoft Mouse driver, the OS/2
  7647.       compatibility box, and others
  7648. SeeAlso: AH=F0h,AH=F2h,AH=F5h
  7649.  
  7650. Format of EGA RIL entries in table of register records:
  7651. Offset    Size    Description    (Table 0134)
  7652.  00h    WORD    group index
  7653.         Pointer/data chips
  7654.            00h CRTC (3B4h mono modes, 3D4h color modes)
  7655.            08h Sequencer 3C4h
  7656.            10h Graphics Controller 3CEh
  7657.            18h Attribute Controller 3C0h
  7658.         Single registers
  7659.            20h Miscellaneous Output register 3C2h
  7660.            28h Feature Control register (3BAh mono modes, 3DAh color)
  7661.            30h Graphics 1 Position register 3CCh
  7662.            38h Graphics 2 Position register 3CAh
  7663.  02h    BYTE    register number (0 for single registers)
  7664.  03h    BYTE    register value
  7665. --------V-10F5-------------------------------
  7666. INT 10 - EGA Register Interface Library - WRITE REGISTER SET
  7667.     AH = F5h
  7668.     CX = number of registers to write (>1)
  7669.     ES:BX -> table of records (see #0134)
  7670. Return: nothing
  7671. Note:    the RIL is provided by EGA.SYS, the Microsoft Mouse driver, the OS/2
  7672.       compatibility box, and others
  7673. SeeAlso: AX=7F05h,AH=F1h,AH=F3h,AH=F4h
  7674. --------V-10F6-------------------------------
  7675. INT 10 - EGA Register Interface Library - REVERT TO DEFAULT REGISTERS
  7676.     AH = F6h
  7677. Return: nothing
  7678. Note:    provided by the Microsoft Mouse driver, OS/2 compatibility box, and
  7679.       others
  7680. SeeAlso: AH=F7h
  7681. --------V-10F7-------------------------------
  7682. INT 10 - EGA Register Interface Library - DEFINE DEFAULT REGISTER TABLE
  7683.     AH = F7h
  7684.     DX = port number
  7685.        Pointer/data chips
  7686.           00h CRTC (3B4h mono modes, 3D4h color modes)
  7687.           08h Sequencer 3C4h
  7688.           10h Graphics Controller 3CEh
  7689.           18h Attribute Controller 3C0h
  7690.        Single registers
  7691.           20h Miscellaneous Output register 3C2h
  7692.           28h Feature Control register (3BAh mono modes, 3DAh color modes)
  7693.           30h Graphics 1 Position register 3CCh
  7694.           38h Graphics 2 Position register 3CAh
  7695.     ES:BX -> table of one-byte entries, one byte to be written to each
  7696.          register
  7697. Return: nothing
  7698. Note:    the RIL is provided by EGA.SYS, the Microsoft Mouse driver, the OS/2
  7699.       compatibility box, and others
  7700. SeeAlso: AH=F6h
  7701. --------V-10FA--BX0000-----------------------
  7702. INT 10 - EGA Register Interface Library - INTERROGATE DRIVER
  7703.     AH = FAh
  7704.     BX = 0000h
  7705. Return: BX = 0000h if RIL driver not present
  7706.     ES:BX -> EGA Register Interface version number, if present:
  7707.         byte 0 = major release number
  7708.         byte 1 = minor release number
  7709. Note:    the RIL is provided by EGA.SYS, the Microsoft Mouse driver, the OS/2
  7710.       compatibility box, and others
  7711. SeeAlso: AH=F6h,INT 2F/AX=BC00h
  7712. --------K-10FA-------------------------------
  7713. INT 10 - FASTBUFF.COM - INSTALLATION CHECK
  7714.     AH = FAh
  7715. Return: AX = 00FAh if installed
  7716.         ES = segment of resident code
  7717. Program: FASTBUFF.COM is a keyboard speedup/screen blanking utility by David
  7718.       Steiner
  7719. Index:    screen saver;FASTBUFF
  7720. --------V-10FE-------------------------------
  7721. INT 10 - TopView - GET SHADOW BUFFER
  7722.     AH = FEh
  7723.     ES:DI -> assumed video buffer
  7724.         B800h:0000h color text/CGA graphics, B000h:0000h mono text,
  7725.           or A000h:0000h EGA/VGA graphics (RSIS environments only)
  7726. Return: ES:DI -> actual video buffer for calling process
  7727. Desc:    Determine the address of the virtual screen to which the program
  7728.       should write instead of the actual video memory; this permits
  7729.       programs to be multitasked without interfering with each other's
  7730.       output, and allows memory managers to move the video memory to
  7731.       permit larger programs to be loaded.
  7732. Notes:    if no multitasker or RSIS-compliant environment is installed, ES:DI is
  7733.       returned unchanged; RSIS is the Relocated Screen Interface
  7734.       Specification
  7735.     for display pages other than 0, use AH=05h and AH=0Fh to determine
  7736.       whether a particular page exists
  7737.     TopView requires a call to AH=FFh to notify it that the screen has
  7738.       changed; DESQview will check for changes itself until the first call
  7739.       to AH=FFh
  7740. SeeAlso: AH=05h,AX=5201h,AH=FFh,INT 15/AX=1024h,INT 21/AH=2Bh"DESQview"
  7741. SeeAlso: INT 21/AH=ECh"DoubleDOS"
  7742. --------V-10FF-------------------------------
  7743. INT 10 - TopView - UPDATE SCREEN FROM SHADOW BUFFER
  7744.     AH = FFh
  7745.     CX = number of consecutive changed characters
  7746.     ES:DI -> first changed character in shadow buffer
  7747. Return: nothing
  7748. Notes:    avoid CX=0000h
  7749.     DESQview will discontinue the automatic screen updating initiated by
  7750.       AH=FEh after this call
  7751.     not supported (ignored) by DESQview/X 1.0x
  7752. SeeAlso: AH=93h,AH=FEh
  7753. --------E-10FF-------------------------------
  7754. INT 10 - DJ GO32.EXE 80386+ DOS extender - VIDEO EXTENSIONS
  7755.     AH = FFh
  7756.     AL = video mode (see #0135)
  7757. Program: GO32.EXE is a DOS extender included as part of the 80386 port of the
  7758.       GNU C/C++ compiler by DJ Delorie and distributed as DJGPP
  7759. SeeAlso: AH=00h,INT 21/AH=FFh"GO32"
  7760.  
  7761. (Table 0135)
  7762. Values for GO32 video mode number:
  7763.  00h    80x25 text
  7764.  01h    default text
  7765.  02h    CXxDX text
  7766.  03h    biggest text
  7767.  04h    320x200 graphics
  7768.  05h    default graphics
  7769.  06h    CXxDX graphics
  7770.  07h    biggest non-interlaced graphics
  7771.  08h    biggest graphics
  7772. Index:    video modes;GO32
  7773. --------V-10FF-------------------------------
  7774. INT 10 - VIDEO - Oak VGA BIOS v1.02+ - SET EMULATION
  7775.     AH = FFh
  7776.     AL = emulation
  7777.         43h ('C') CGA emulation
  7778.         45h ('E') EGA emulation
  7779.         4Dh ('M') Hercules emulation
  7780.         56h ('V') VGA emulation
  7781.     ES:DI -> signature string "Calamity"
  7782. Return: VGA switched to suggested mode
  7783. SeeAlso: AH=00h,AX=007Fh/BH=00h,AX=007Fh/BH=02h,AX=5F01h
  7784. --------R-10FF00-----------------------------
  7785. INT 10 - CARBON COPY PLUS v5.0 - CHECK IF CC CONNECTED TO CCHELP
  7786.     AX = FF00h
  7787. Return: BL = state
  7788.         00h not connected
  7789.         01h connected
  7790. SeeAlso: AX=FF01h,AX=FF02h
  7791. --------R-10FF01-----------------------------
  7792. INT 10 - CARBON COPY PLUS v5.0 - DISCONNECT AND RESET LINE
  7793.     AX = FF01h
  7794. Return: nothing
  7795. SeeAlso: AX=FF00h,AX=FF02h
  7796. --------R-10FF02-----------------------------
  7797. INT 10 - CARBON COPY PLUS v5.0 - GET LAST PHONE NUMBER DIALED
  7798.     AX = FF02h
  7799. Return: ES:DI -> ASCIZ phone number
  7800. SeeAlso: AX=FF00h,AX=FF01h
  7801. --------C-11---------------------------------
  7802. INT 11 - CPU-generated (80486+) - ALIGNMENT CHECK
  7803. Desc:    automatically generated by the CPU when the AC flag is set, the current
  7804.       privilege level is 3, and a misaligned memory access (WORD not on an
  7805.       even address or DWORD not on a multiple of 4) is made
  7806. Note:    not all V86 monitors allow the AC flag to be set, such as Turbo
  7807.       Debugger 386
  7808. SeeAlso: INT 12"CPU"
  7809. --------B-11---------------------------------
  7810. INT 11 - BIOS - GET EQUIPMENT LIST
  7811. Return: (E)AX = BIOS equipment list word (see #0136,#2470 at INT 4B"Tandy")
  7812. Note:    since older BIOSes do not know of the existence of EAX, the high word
  7813.       of EAX should be cleared before this call if any of the high bits
  7814.       will be tested
  7815. SeeAlso: INT 4B"Tandy 2000"
  7816.  
  7817. Bitfields for BIOS equipment list:
  7818. Bit(s)    Description    (Table 0136)
  7819.  0    floppy disk(s) installed (number specified by bits 7-6)
  7820.  1    80x87 coprocessor installed
  7821.  3-2    number of 16K banks of RAM on motherboard (PC only)
  7822.     number of 64K banks of RAM on motherboard (XT only)
  7823.  2    pointing device installed (PS)
  7824.  3    unused (PS)
  7825.  5-4    initial video mode
  7826.     00 EGA, VGA, or PGA
  7827.     01 40x25 color
  7828.     10 80x25 color
  7829.     11 80x25 monochrome
  7830.  7-6    number of floppies installed less 1 (if 0 set)
  7831.  8    DMA support installed (PCjr, Tandy 1400LT)
  7832.     DMA support *not* installed (Tandy 1000's)
  7833.  11-9    number of serial ports installed
  7834.  12    game port installed
  7835.  13    serial printer attached (PCjr)
  7836.     internal modem installed (PC/Convertible)
  7837.  15-14    number of parallel ports installed
  7838. ---Compaq, Dell, and many other 386/486 machines--
  7839.  23    page tables set so that Weitek coprocessor addressable in real mode
  7840.  24    Weitek math coprocessor present
  7841. ---Compaq Systempro---
  7842.  25    internal DMA parallel port available
  7843.  26    IRQ for internal DMA parallel port (if bit 25 set)
  7844.     0 = IRQ5
  7845.     1 = IRQ7
  7846.  28-27    parallel port DMA channel
  7847.     00 DMA channel 0
  7848.     01 DMA channel 0 ???
  7849.     10 reserved
  7850.     11 DMA channel 3
  7851. SeeAlso: INT 12"BIOS",#2470 at INT 4B"Tandy 2000"
  7852. --------d-11----SI6A6A-----------------------
  7853. INT 11 - Columbia Data Products Standard Device Level Protocol (SDLP) 1.6
  7854.     SI = 6A6Ah
  7855.     AH = command (see #0137)
  7856.     AL = SCSI Addressing (see #0138)
  7857. Return: CF clear if successful
  7858.         DI = 6A6Ah if AH=01h on entry (maybe for all functions???)
  7859.         AH = ??? for command 01h
  7860.     CF set on error
  7861.         AL = error code
  7862. SeeAlso: INT 21/AX=4402h"ASPI"
  7863.  
  7864. (Table 0137)
  7865. Values for SDLP command:
  7866.  00h    SDLP initialization
  7867.  01h    SDLP System Identify
  7868.  02h    simple read sectors
  7869.  03h    simple write sectors
  7870.  04h    simple verify sectors/seek to sector
  7871.  05h    get device size/type
  7872.  06h    ready unit
  7873.  07h    format unit
  7874.  08h    diagnostics
  7875.  09h    rewind
  7876.  0Ah    erase
  7877.  0Bh    write filemarks
  7878.  0Ch    space
  7879.  0Dh    prevent/allow media removal
  7880.  0Eh    load/unload media
  7881.  0Fh    reserved - returns good status
  7882.  10h    set block size
  7883.  11h    write setmark
  7884.  12h    set error level
  7885.  13h    get address of Request Sense Buffer
  7886.  14h    get SDLP error via Request Sense
  7887.  F0h    Vendor Unique Function (WD7000-FASST2 only)
  7888.  FDh    reset current SCSI HAC
  7889.  FEh    get/set current SCSI HAC
  7890.  FFh    execute SCSI command
  7891.  
  7892. Bitfields for SDLP SCSI addressing:
  7893. Bit(s)    Description    (Table 0138)
  7894.  7-6    Host Adapter
  7895.  5-3    SCSI Target ID
  7896.  2-0    SCSI Target LUN (logical unit number)
  7897. --------V-110225BX6900-----------------------
  7898. INT 11 - Blank-It Screen Blanker - INSTALLATION CHECK
  7899.     AX = 0225h
  7900.     BX = 6900h
  7901. Return: BL = 23h
  7902.     ES:DI -> ASCIZ "BLNKIT"
  7903. Program: Blank-It is a resident screen blanker by Rhode Island Soft Systems,
  7904.       Inc.
  7905. SeeAlso: AX=0225h/BX=6902h,AX=0225h/BX=6908h,AX=0225h/BX=6909h,INT 14/AX=AA01h
  7906. Index:    screen saver;Blank-It
  7907. --------V-110225BX6901-----------------------
  7908. INT 11 - Blank-It Screen Blanker - SET TIMEOUT FOR SCREEN BLANKING
  7909.     AX = 0225h
  7910.     BX = 6901h
  7911.     CX = timeout in timer ticks (18.2/second) or 0000h to disable timeout
  7912.          largest value is 59 minutes (FBACh or 64428)
  7913. Return: CF clear if successful
  7914.         DI = 6A6Ah (possibly also 6A6Ah for all following functions)
  7915.         AH = ???
  7916.     CF set on error
  7917.         AL = error code
  7918. SeeAlso: AX=0225h/BX=6900h,AX=0225h/BX=6904h
  7919. Index:    screen saver;Blank-It
  7920. --------V-110225BX6902-----------------------
  7921. INT 11 - Blank-It Screen Blanker - ENABLE THE SOFTWARE
  7922.     AX = 0225h
  7923.     BX = 6902h
  7924. Return: CF clear if successful
  7925.     CF set on error
  7926.         AL = error code
  7927. SeeAlso: AX=0225h/BX=6900h,AX=0225h/BX=6903h
  7928. Index:    screen saver;Blank-It
  7929. --------V-110225BX6903-----------------------
  7930. INT 11 - Blank-It Screen Blanker - DISABLE THE SOFTWARE
  7931.     AX = 0225h
  7932.     BX = 6903h
  7933. Return: CF clear if successful
  7934.     CF set on error
  7935.         AL = error code
  7936. SeeAlso: AX=0225h/BX=6900h,AX=0225h/BX=6902h
  7937. Index:    screen saver;Blank-It
  7938. --------V-110225BX6904-----------------------
  7939. INT 11 - Blank-It Screen Blanker - GET BLANKING TIMEOUT
  7940.     AX = 0225h
  7941.     BX = 6904h
  7942. Return: CF clear if successful
  7943.         BX = timeout (see AX=0225h/BX=6901h)
  7944.     CF set on error
  7945.         AL = error code
  7946. SeeAlso: AX=0225h/BX=6900h,AX=0225h/BX=6901h
  7947. Index:    screen saver;Blank-It
  7948. --------V-110225BX6905-----------------------
  7949. INT 11 - Blank-It Screen Blanker - ENABLE WINDOWS COMPATIBILITY MODE
  7950.     AX = 0225h
  7951.     BX = 6905h
  7952. Return: CF clear if successful
  7953.     CF set on error
  7954.         AL = error code
  7955. SeeAlso: AX=0225h/BX=6900h,AX=0225h/BX=6906h
  7956. Index:    screen saver;Blank-It
  7957. --------V-110225BX6906-----------------------
  7958. INT 11 - Blank-It Screen Blanker - DISABLE WINDOWS COMPATIBILITY MODE
  7959.     AX = 0225h
  7960.     BX = 6906h
  7961. Return: CF clear if successful
  7962.     CF set on error
  7963.         AL = error code
  7964. Program: Blank-It is a resident screen blanker by Rhode Island Soft Systems,
  7965.       Inc.
  7966. SeeAlso: AX=0225h/BX=6900h,AX=0225h/BX=6905h
  7967. Index:    screen saver;Blank-It
  7968. --------V-110225BX6907-----------------------
  7969. INT 11 - Blank-It Screen Blanker - UNBLANK THE SCREEN
  7970.     AX = 0225h
  7971.     BX = 6907h
  7972. Return: CF clear if successful
  7973.     CF set on error
  7974.         AL = error code
  7975. SeeAlso: AX=0225h/BX=6900h,AX=0225h/BX=6908h
  7976. Index:    screen saver;Blank-It
  7977. --------V-110225BX6908-----------------------
  7978. INT 11 - Blank-It Screen Blanker - BLANK THE SCREEN
  7979.     AX = 0225h
  7980.     BX = 6908h
  7981. Return: CF clear if successful
  7982.     CF set on error
  7983.         AL = error code
  7984. SeeAlso: AX=0225h/BX=6900h,AX=0225h/BX=6907h
  7985. Index:    screen saver;Blank-It
  7986. --------V-110225BX6909-----------------------
  7987. INT 11 - Blank-It Screen Blanker - SET HOTKEY FOR MANUAL BLANKING
  7988.     AX = 0225h
  7989.     BX = 6909h
  7990.     CL = key scan code (see #0139)
  7991. Return: CF clear if successful
  7992.     CF set on error
  7993.         AL = error code
  7994. Program: Blank-It is a resident screen blanker by Rhode Island Soft Systems,
  7995.       Inc.
  7996. SeeAlso: AX=0225h/BX=6900h
  7997. Index:    screen saver;Blank-It|hotkeys;Blank-It
  7998.  
  7999. (Table 0139)
  8000. Values for Blank-It hotkey scan code:
  8001.  00h    No hot key
  8002.  1Dh    Left CTRL
  8003.  2Ah    Left Shift
  8004.  36h    Right Shift
  8005.  57h    F11
  8006.  58h    F12
  8007. SeeAlso: #0005
  8008. --------G-1105D7-----------------------------
  8009. INT 11 CU - Borland C++ IDE - INSTALLED CALLOUT
  8010.     AX = 05D7h
  8011.     BX = product ID (0088h)
  8012. Note:    called by the BC++ IDE when an application calls
  8013.       INT 12/AX=05D7h/BX=05D7h
  8014. SeeAlso: INT 12/AX=05D7h/BX=05D7h
  8015. Index:    installation check;Borland C++ IDE
  8016. --------F-1177-------------------------------
  8017. INT 11 - RainbowFAX v1.3 - SFENGINE API - OPERATIONAL CONTROL
  8018.     AH = 77h
  8019.     AL = subfunction
  8020.         01h request SFENGINE start
  8021.         Return: AX = 0001h
  8022.         02h check if SFENGINE started
  8023.         Return: AX = 0000h or 0001h
  8024.         03h request SFENGINE stop
  8025.         Return: AX = 0001h
  8026.         04h check if SFENGINE stopped
  8027.         Return: AX = 0000h or 0001h
  8028.         05h installation check
  8029.         Return: AX = 0001h
  8030.         06h uninstall???
  8031.         BX:DX -> return address for successful uninstall???
  8032.         Return: (at caller's address)
  8033.             AX = 0000h
  8034.         else
  8035.         Return: AX = FFFFh (invalid subfunction)
  8036. Return: ES:DX -> ASCIZ signature string "SFAX ENGINE V1.0"
  8037.         followed by internal data area???
  8038. SeeAlso: AH=78h,AH=79h,AH=7Ah,AH=7Ch
  8039. Index:    installation check;RainbowFAX|installation check;SFENGINE
  8040. Index:    uninstall;RainbowFAX|uninstall;SFENGINE
  8041. --------F-1178-------------------------------
  8042. INT 11 - RainbowFAX v1.3 - SFENGINE API - ???
  8043.     AH = 78h
  8044.     AL = subfunction
  8045.         01h set ???
  8046.         BX = new state for ???
  8047.             0000h ???
  8048.             else ???
  8049.         Return: AX = 0001h
  8050.         02h set ???
  8051.         BX = ???
  8052.         CX = ???
  8053.         Return: AX = 0001h
  8054.         03h set ???
  8055.         BX = new state for ???
  8056.             0000h ???
  8057.             else ???
  8058.         Return: AX = 0001h
  8059.         else
  8060.         Return: AX = FFFFh (invalid subfunction)
  8061. SeeAlso: AH=77h,AH=79h,AH=7Ah,AH=7Ch
  8062. --------F-1179-------------------------------
  8063. INT 11 - RainbowFAX v1.3 - SFENGINE API - ???
  8064.     AH = 79h
  8065.     AL = subfunction
  8066.         01h set ??? flag
  8067.         Return: AX = previous state (0000h already set, 0001h clear)
  8068.         02h clear ??? flag (refer to subfunc 01h)
  8069.         Return: AX = 0001h
  8070.         03h set ??? flag (different from subfn 02h or 04h)
  8071.         Return: AX = 0001h
  8072.         04h clear ??? flag (different from subfn 02h or 03h)
  8073.         Return: AX = 0001h
  8074.         else
  8075.         Return: AX = FFFFh (invalid subfunction)
  8076. SeeAlso: AH=77h,AH=78h,AH=7Ah,AH=7Ch
  8077. --------F-117A-------------------------------
  8078. INT 11 - RainbowFAX v1.3 - SFENGINE API - ???
  8079.     AH = 7Ah
  8080.     AL = subfunction
  8081.         01h set ??? flag
  8082.         Return: AX = previous state (0000h already set, 0001h clear)
  8083.         02h clear ??? flag
  8084.         Return: AX = 0001h
  8085.         03h set ??? flag (different from subfn 02h)
  8086.         Return: AX = 0001h
  8087.         else
  8088.         Return: AX = FFFFh (invalid subfunction)
  8089. SeeAlso: AH=77h,AH=78h,AH=79h,AH=7Ch
  8090. --------F-117C01-----------------------------
  8091. INT 11 - RainbowFAX v1.3 - SFENGINE API - SET ??? FLAG
  8092.     AX = 7C01h
  8093. Return: AX = 0001h
  8094. SeeAlso: AH=77h,AH=78h,AH=79h,AH=7Ah,AX=7C02h,AX=7C03h
  8095. --------F-117C02-----------------------------
  8096. INT 11 - RainbowFAX v1.3 - SFENGINE API - CLEAR ??? FLAG
  8097.     AX = 7C02h
  8098. Return: AX = 0001h
  8099. SeeAlso: AH=77h,AH=78h,AH=79h,AH=7Ah,AX=7C01h,AX=7C03h
  8100. --------F-117C03-----------------------------
  8101. INT 11 - RainbowFAX v1.3 - SFENGINE API - UNSUPPORTED FUNCTIONS
  8102.     AX = 7C03h-7CFFh
  8103. Return: AX = FFFFh
  8104. SeeAlso: AH=77h,AX=7C01h,AX=7C02h
  8105. --------S-11BC--DX1954-----------------------
  8106. INT 11 - BNU FOSSIL - INSTALLATION CHECK
  8107.     AH = BCh
  8108.     DX = 1954h
  8109. Return: AX = 1954h
  8110.     ES:DX -> entry point of driver (instead of INT 14)
  8111. SeeAlso: INT 14/AH=04h"FOSSIL"
  8112. --------d-11FF--SI6A6A-----------------------
  8113. INT 11 - WD7000 SDLP interface - EXECUTE GENERIC SCSI COMMAND
  8114.     AH = FFh
  8115.     SI = 6A6Ah
  8116.     AL = SCSI Addressing (see #0140)
  8117.     CX = bytes of data to be transmitted (max FFF0h)
  8118.     DH = 00h
  8119.     DL = length of SCSI Command Descriptor Block
  8120.     DS:DI -> SCSI Command Descriptor Block
  8121.     ES:BX -> data buffer
  8122. Return: CF set on error
  8123.         AL = error code
  8124.     CF clear if successful
  8125. Note:    because of busmaster operations with WD7000FASST avoid accessing
  8126.       video memory directly; check 386 memory manager for VDS support.
  8127.       The WD7000XTAT works with programmed IO and does not have this
  8128.       limitation.
  8129. SeeAlso: INT 21/AX=4402h"ASPI",INT 2F/AX=7F01h
  8130.  
  8131. Bitfields for SDLP SCSI addressing:
  8132. Bit(s)    Description    (Table 0140)
  8133.  2-0    SCSI Target LUN (logical unit number)
  8134.  5-3    SCSI Target ID
  8135.  7    write flag, set for write operations, clear otherwise
  8136. --------T-11FFFECXFFFE-----------------------
  8137. INT 11 - BACK&FORTH (before v1.62) API
  8138.     AX = FFFEh
  8139.     CX = FFFEh
  8140.     BX = function
  8141.         00h installation check
  8142.         Return: AX = installation state
  8143.                 0001h BNFHIGH and BNFLOW both loaded
  8144.                 0003h only BNFHIGH loaded
  8145.                 else neither loaded
  8146.         01h ???
  8147.         Return: DX:AX -> ???
  8148.         02h ???
  8149.         03h ???
  8150.         04h ???
  8151.         05h ??? switches current PSP segment and stack if BNFLOW has not
  8152.             yet announced itself installed
  8153.         06h ???
  8154.         Return: AX = ???
  8155. SeeAlso: INT 12/AX=FFFEh
  8156. Index:    installation check;BACK&FORTH
  8157. --------B-12---------------------------------
  8158. INT 12 - BIOS - GET MEMORY SIZE
  8159. Return: AX = kilobytes of contiguous memory starting at absolute address 00000h
  8160. Note:    this call returns the contents of the word at 0040h:0013h; in PC and
  8161.       XT, this value is set from the switches on the motherboard
  8162. SeeAlso: INT 11"BIOS",INT 2F/AX=4A06h,INT 4C"Tandy 2000"
  8163. --------C-12---------------------------------
  8164. INT 12 - CPU-generated (Pentium) - MACHINE CHECK EXCEPTION
  8165. Notes:    Intel documents this interrupt as CPU model-dependent; for current
  8166.       Pentium processors, the reason for the machine check exception may
  8167.       be read from model-specific registers 00h and 01h (described, for
  8168.       example, in Christian Ludloff's 4P package)
  8169.     this exception is enabled by bit 6 of CR4
  8170. SeeAlso: INT 11"CPU",MSR 00000000h,MSR 00000001h
  8171. --------K-12----CX1806-----------------------
  8172. INT 12 - KEYBUI v2.0+ - INSTALLATION CHECK
  8173.     CX = 1806h
  8174. Return: AX = kilobytes of contiguous memory starting at absolute address 00000h
  8175.     CX = 1960h if installed
  8176. Program: KEYBUI is a resident keyboard driver by Johan Zwiekhorst which allows
  8177.       accented characters and box drawing on standard QWERTY keyboards; it
  8178.       also provides break-to-DOS and screen blanking capabilities
  8179. SeeAlso: INT 14/AX=AA01h
  8180. Index:    screen saver;KEYBUI
  8181. --------d-12----CX1807-----------------------
  8182. INT 12 - PARKER v2.0+ - INSTALLATION CHECK
  8183.     CX = 1807h
  8184. Return: AX = kilobytes of contiguous memory starting at absolute address 00000h
  8185.     CX = 1961h if installed
  8186. Program: PARKER is an optionally-resident hard disk parking program by Johan
  8187.       Zwiekhorst
  8188. --------G-1205D7BX05D7-----------------------
  8189. INT 12 U - Borland C++ IDE - INSTALLATION CHECK
  8190.     AX = 05D7h (1495d)
  8191.     BX = 05D7h
  8192. Note:    the BC++ IDE will call INT 11/AX=05D7h/BX=0088h if it is loaded
  8193. SeeAlso: INT 11/AX=05D7h
  8194. --------v-124350BX4920-----------------------
  8195. INT 12 C - CPI-standard virus - "FRIEND" CHECK
  8196.     AX = 4350h
  8197.     BX = 4920h
  8198.     CX = AB46h
  8199.     DX = 554Eh
  8200. Return: if friendly (not to be infected)
  8201.         CX:DX -> ASCIZ identity code (changes yearly)
  8202. SeeAlso: INT 13/AX=EC00h"VIRUS",INT 13/AX=5001h,INT 21/AX=0B56h
  8203. --------T-12FFFECXFFFE-----------------------
  8204. INT 12 - Back&Forth v1.62+ - API
  8205.     AX = FFFEh
  8206.     CX = FFFEh
  8207.     BX = function
  8208.         00h installation check
  8209.         Return: AX = 0001h installed
  8210.                  else  not loaded
  8211.         01h (reserved)
  8212.         02h build program ID list (shareware Back&Forth)
  8213.         ES:DI -> buffer of at least 100 bytes, to be filled with words
  8214.         Return: AX = number of programs defined
  8215.             ES:DI buffer filled with AX words
  8216.         02h get memory statistics (Back&Forth Professional)
  8217.         Return: AX = available swap memory, KBytes
  8218.             BX = maximum task size, KBytes
  8219.             DX = fixed overhead per task, excluding video/macro
  8220.                   storage
  8221.         03h switch to specified task (task need not be open yet)
  8222.         DX = two-letter program ID
  8223.         Return: AX = status
  8224.                 0000h if task undefined
  8225.                 0001h task switch will occur when safe
  8226.         04h (reserved)
  8227.         05h (reserved)
  8228.         06h get version (documented only for Back&Forth Professional)
  8229.         Return: AX = version * 100 (v1.71 = 00ABh)
  8230.         07h spawn program (Back&Forth Professional only???)
  8231.         ES:DI -> BF_SPAWN record (see #0142)
  8232.         Return: AX = status
  8233.                 0000h if no task handles free
  8234.                 0001h spawn will occur when safe
  8235.         08h get open tasks (documented only for Back&Forth Professional)
  8236.         ES:DI -> task info buffer (see #0141,#0143)
  8237.         Return: AX = number of open tasks (max 20)
  8238.         Note:    the supplied buffer must be large enough to hold 21
  8239.               task entries
  8240.         09h (reserved)
  8241.         ---Back&Forth Professional---
  8242.         0Ah get active clipboard filename
  8243.         Return: DX:AX -> ASCIZ clipboard filename
  8244.         0Bh get active task number
  8245.         AX = active task number (00h-13h)
  8246.         BX = number of tasks allocated
  8247.         DX = maximum number of tasks
  8248.         0Ch (reserved)
  8249.         0Dh (reserved)
  8250.         0Eh (reserved)
  8251.         0Fh stuff string into keyboard buffer
  8252.         ES:DI -> ASCIZ string to be stuffed
  8253.         Return: nothing
  8254.         10h check if in graphics mode
  8255.         Return: AX = state
  8256.                 0000h color text mode
  8257.                 0004h mono text mode
  8258.                 FFFFh graphics mode
  8259.         11h get Back&Forth Professional user number
  8260.         Return: AX = user number (0000h-00FFh)
  8261.         12h switch task by task number
  8262.         DX = task number
  8263.         Return: AX = status
  8264.                 0000h attempted to switch to active task
  8265.                 0001h task switch will occur when safe
  8266.                 FFFFh invalid task number
  8267.         13h delete (kill) task
  8268.         DX = task number
  8269.         Return: AX = status
  8270.                 0000h attempted to delete the active task
  8271.                 0001h successfully deleted
  8272.                 FFFFh invalid task number
  8273.         Note:    the active task number will change if the deleted task
  8274.               was lower in the task list than the active task
  8275.         14h get next available task handle
  8276.         Return:    AX = next available task handle
  8277.                 FFFFh if task table is full
  8278. Program: Back & Forth is a task switcher by Progressive Solutions, Inc.
  8279. SeeAlso: INT 11/AX=FFFEh
  8280. Index:    installation check;BACK&FORTH
  8281.  
  8282. Format of Back&Forth task info buffer:
  8283. Offset    Size    Description    (Table 0141)
  8284.  00h 21 BYTEs    ASCIZ task name
  8285.  15h    BYTE    hotkey shift state (as for INT 16/AH=02h)
  8286.  16h    WORD    hotkey scan code (see also #0005)
  8287.  18h    WORD    program ID
  8288. Index:    hotkeys;Back&Forth
  8289. SeeAlso: #0142,#0143
  8290.  
  8291. Format of Back&Forth Professional BF_SPAWN record:
  8292. Offset    Size    Description    (Table 0142)
  8293.  00h 21 BYTEs    task description
  8294.  15h    BYTE    flag: disable hotkeys
  8295.  16h    WORD    environment size in bytes
  8296.  18h    BYTE    hotkey shift flags
  8297.  19h    WORD    hotkey scancode
  8298.  1Bh    WORD    maximum number of EMS pages
  8299.  1Dh    WORD    required memory in KBytes
  8300.  1Fh  3 BYTEs    DESQview-style two-letter program ID
  8301.  22h 13 BYTEs    base name of program to be run (no path or extension)
  8302.  2Fh 66 BYTEs    directory from which to start program
  8303.  71h 66 BYTEs    initial current directory for program
  8304. SeeAlso: #0141,#0143
  8305.  
  8306. Format of Back&Forth Professional BF_TASK record:
  8307. Offset    Size    Description    (Table 0143)
  8308.  00h    DWORD    Unix-style task start time (seconds since 1/1/1970)
  8309.  04h 21 BYTEs    task description
  8310.  19h    DWORD    elapsed time in task (seconds)
  8311.  1Dh    WORD    task ID
  8312.  1Fh    BYTE    task hotkey keyboard flags
  8313.  20h    WORD    task hotkey scan code (see also #0005)
  8314.  22h    DWORD    time task was suspended/exited
  8315.  26h    WORD    task handle
  8316. SeeAlso: #0141,#0142
  8317. --------B-1300-------------------------------
  8318. INT 13 - DISK - RESET DISK SYSTEM
  8319.     AH = 00h
  8320.     DL = drive (if bit 7 is set both hard disks and floppy disks reset)
  8321. Return: AH = status (see #0144)
  8322.     CF clear if successful (returned AH=00h)
  8323.     CF set on error
  8324. Note:    forces controller to recalibrate drive heads (seek to track 0)
  8325.     for PS/2 35SX, 35LS, 40SX and L40SX, as well as many other systems,
  8326.       both the master drive and the slave drive respond to the Reset
  8327.       function that is issued to either drive
  8328. SeeAlso: AH=0Dh,AH=11h,INT 21/AH=0Dh,INT 4D/AH=00h"TI Professional"
  8329. SeeAlso: INT 56"Tandy 2000"
  8330. --------B-1301-------------------------------
  8331. INT 13 - DISK - GET STATUS OF LAST OPERATION
  8332.     AH = 01h
  8333.     DL = drive (bit 7 set for hard disk)
  8334. Return: CF clear if successful (returned status 00h)
  8335.     CF set on error
  8336.     AH = status of previous operation (see #0144)
  8337. Note:    some BIOSes return the status in AL; the PS/2 Model 30/286 returns the
  8338.       status in both AH and AL
  8339. SeeAlso: AH=00h,INT 4D/AH=01h,MEM 0040h:0074h
  8340.  
  8341. (Table 0144)
  8342. Values for disk operation status:
  8343.  00h    successful completion
  8344.  01h    invalid function in AH or invalid parameter
  8345.  02h    address mark not found
  8346.  03h    disk write-protected
  8347.  04h    sector not found/read error
  8348.  05h    reset failed (hard disk)
  8349.  05h    data did not verify correctly (TI Professional PC)
  8350.  06h    disk changed (floppy)
  8351.  07h    drive parameter activity failed (hard disk)
  8352.  08h    DMA overrun
  8353.  09h    data boundary error (attempted DMA across 64K boundary or >80h sectors)
  8354.  0Ah    bad sector detected (hard disk)
  8355.  0Bh    bad track detected (hard disk)
  8356.  0Ch    unsupported track or invalid media
  8357.  0Dh    invalid number of sectors on format (PS/2 hard disk)
  8358.  0Eh    control data address mark detected (hard disk)
  8359.  0Fh    DMA arbitration level out of range (hard disk)
  8360.  10h    uncorrectable CRC or ECC error on read
  8361.  11h    data ECC corrected (hard disk)
  8362.  20h    controller failure
  8363.  31h    no media in drive (IBM/MS INT 13 extensions)
  8364.  32h    incorrect drive type stored in CMOS (Compaq)
  8365.  40h    seek failed
  8366.  80h    timeout (not ready)
  8367.  AAh    drive not ready (hard disk)
  8368.  B0h    volume not locked in drive (INT 13 extensions)
  8369.  B1h    volume locked in drive (INT 13 extensions)
  8370.  B2h    volume not removable (INT 13 extensions)
  8371.  B3h    volume in use (INT 13 extensions)
  8372.  B4h    lock count exceeded (INT 13 extensions)
  8373.  B5h    valid eject request failed (INT 13 extensions)
  8374.  BBh    undefined error (hard disk)
  8375.  CCh    write fault (hard disk)
  8376.  E0h    status register error (hard disk)
  8377.  FFh    sense operation failed (hard disk)
  8378. SeeAlso: #M021
  8379. --------B-1302-------------------------------
  8380. INT 13 - DISK - READ SECTOR(S) INTO MEMORY
  8381.     AH = 02h
  8382.     AL = number of sectors to read (must be nonzero)
  8383.     CH = low eight bits of cylinder number
  8384.     CL = sector number 1-63 (bits 0-5)
  8385.          high two bits of cylinder (bits 6-7, hard disk only)
  8386.     DH = head number
  8387.     DL = drive number (bit 7 set for hard disk)
  8388.     ES:BX -> data buffer
  8389. Return: CF set on error
  8390.         if AH = 11h (corrected ECC error), AL = burst length
  8391.     CF clear if successful
  8392.     AH = status (see #0144)
  8393.     AL = number of sectors transferred (only valid if CF set for some
  8394.           BIOSes)
  8395. Notes:    errors on a floppy may be due to the motor failing to spin up quickly
  8396.       enough; the read should be retried at least three times, resetting
  8397.       the disk with AH=00h between attempts
  8398.     most BIOSes support "multitrack" reads, where the value in AL
  8399.       exceeds the number of sectors remaining on the track, in which
  8400.       case any additional sectors are read beginning at sector 1 on
  8401.       the following head in the same cylinder; the CONFIG.SYS command
  8402.       MULTITRACK can be used to force DOS to split disk accesses which
  8403.       would wrap across a track boundary into two separate calls
  8404.     the IBM AT BIOS and many other BIOSes use only the low four bits of
  8405.       DH (head number) since the WD-1003 controller which is the standard
  8406.       AT controller (and the controller that IDE emulates) only supports
  8407.       16 heads
  8408.     AWARD AT BIOS and AMI 386sx BIOS have been extended to handle more
  8409.       than 1024 cylinders by placing bits 10 and 11 of the cylinder number
  8410.       into bits 6 and 7 of DH
  8411.     under Windows95, a volume must be locked (see INT 21/AX=440Dh/CX=084Bh)
  8412.       in order to perform direct accesses such as INT 13h reads and writes
  8413. SeeAlso: AH=03h,AH=0Ah,AH=06h"V10DISK.SYS",AH=21h"PS/1",AH=42h"IBM"
  8414. SeeAlso: INT 21/AX=440Dh/CX=084Bh,INT 4D/AH=02h
  8415. --------B-1303-------------------------------
  8416. INT 13 - DISK - WRITE DISK SECTOR(S)
  8417.     AH = 03h
  8418.     AL = number of sectors to write (must be nonzero)
  8419.     CH = low eight bits of cylinder number
  8420.     CL = sector number 1-63 (bits 0-5)
  8421.          high two bits of cylinder (bits 6-7, hard disk only)
  8422.     DH = head number
  8423.     DL = drive number (bit 7 set for hard disk)
  8424.     ES:BX -> data buffer
  8425. Return: CF set on error
  8426.     CF clear if successful
  8427.     AH = status (see #0144)
  8428.     AL = number of sectors transferred
  8429.           (only valid if CF set for some BIOSes)
  8430. Notes:    errors on a floppy may be due to the motor failing to spin up quickly
  8431.       enough; the write should be retried at least three times, resetting
  8432.       the disk with AH=00h between attempts
  8433.     most BIOSes support "multitrack" writes, where the value in AL
  8434.       exceeds the number of sectors remaining on the track, in which
  8435.       case any additional sectors are written beginning at sector 1 on
  8436.       the following head in the same cylinder; the CONFIG.SYS command
  8437.       MULTITRACK can be used to force DOS to split disk accesses which
  8438.       would wrap across a track boundary into two separate calls
  8439.     the IBM AT BIOS and many other BIOSes use only the low four bits of
  8440.       DH (head number) since the WD-1003 controller which is the standard
  8441.       AT controller (and the controller that IDE emulates) only supports
  8442.       16 heads
  8443.     AWARD AT BIOS and AMI 386sx BIOS have been extended to handle more
  8444.       than 1024 cylinders by placing bits 10 and 11 of the cylinder number
  8445.       into bits 6 and 7 of DH
  8446.     under Windows95, an application must issue a physical volume lock on
  8447.       the drive via INT 21/AX=440Dh before it can successfully write to
  8448.       the disk with this function
  8449. SeeAlso: AH=02h,AH=0Bh,AH=07h"V10DISK.SYS",AH=22h"PS/1",AH=43h"IBM"
  8450. SeeAlso: INT 21/AX=440Dh"DOS 3.2+",INT 4D/AH=03h
  8451. --------B-1304-------------------------------
  8452. INT 13 - DISK - VERIFY DISK SECTOR(S)
  8453.     AH = 04h
  8454.     AL = number of sectors to verify (must be nonzero)
  8455.     CH = low eight bits of cylinder number
  8456.     CL = sector number 1-63 (bits 0-5)
  8457.          high two bits of cylinder (bits 6-7, hard disk only)
  8458.     DH = head number
  8459.     DL = drive number (bit 7 set for hard disk)
  8460.     ES:BX -> data buffer (PC,XT,AT with BIOS prior to 11/15/85)
  8461. Return: CF set on error
  8462.     CF clear if successful
  8463.     AH = status (see #0144)
  8464.     AL = number of sectors verified
  8465. Notes:    errors on a floppy may be due to the motor failing to spin up quickly
  8466.       enough; the write should be retried at least three times, resetting
  8467.       the disk with AH=00h between attempts
  8468.     this function does not compare the disk with memory, it merely
  8469.       checks whether the sector's stored CRC matches the data's actual CRC
  8470.     the IBM AT BIOS and many other BIOSes use only the low four bits of
  8471.       DH (head number) since the WD-1003 controller which is the standard
  8472.       AT controller (and the controller that IDE emulates) only supports
  8473.       16 heads
  8474.     AWARD AT BIOS and AMI 386sx BIOS have been extended to handle more
  8475.       than 1024 cylinders by placing bits 10 and 11 of the cylinder number
  8476.       into bits 6 and 7 of DH
  8477. SeeAlso: AH=02h,AH=44h,INT 4D/AH=04h,INT 4D/AH=06h
  8478. --------B-1305-------------------------------
  8479. INT 13 - FLOPPY - FORMAT TRACK
  8480.     AH = 05h
  8481.     AL = number of sectors to format
  8482.     CH = track number
  8483.     DH = head number
  8484.     DL = drive number
  8485.     ES:BX -> address field buffer (see #0145)
  8486. Return: CF set on error
  8487.     CF clear if successful
  8488.     AH = status (see #0144)
  8489. Notes:    on AT or higher, call AH=17h first
  8490.     the number of sectors per track is read from the diskette parameter
  8491.       table pointed at by INT 1E
  8492. SeeAlso: AH=05h"FIXED",AH=17h,AH=18h,INT 1E
  8493.  
  8494. Format of floppy format address field buffer entry (one per sector in track):
  8495. Offset    Size    Description    (Table 0145)
  8496.  00h    BYTE    track number
  8497.  01h    BYTE    head number (0-based)
  8498.  02h    BYTE    sector number
  8499.  03h    BYTE    sector size (00h=128 bytes, 01h=256 bytes, 02h=512, 03h=1024)
  8500. --------B-1305-------------------------------
  8501. INT 13 - FIXED DISK - FORMAT TRACK
  8502.     AH = 05h
  8503.     AL = interleave value (XT-type controllers only)
  8504.     ES:BX -> 512-byte format buffer
  8505.         the first 2*(sectors/track) bytes contain F,N for each sector
  8506.            F = sector type
  8507.             00h for good sector
  8508.             20h to unassign from alternate location
  8509.             40h to assign to alternate location
  8510.             80h for bad sector
  8511.            N = sector number
  8512.     CH = cylinder number (bits 8,9 in high bits of CL)
  8513.     CL = high bits of cylinder number (bits 7,6)
  8514.     DH = head
  8515.     DL = drive
  8516. Return: CF set on error
  8517.     CF clear if successful
  8518.     AH = status code (see #0144)
  8519. Notes:    AWARD AT BIOS and AMI 386sx BIOS have been extended to handle more
  8520.       than 1024 cylinders by placing bits 10 and 11 of the cylinder number
  8521.       into bits 6 and 7 of DH
  8522.     for XT-type controllers on an AT or higher, AH=0Fh should be called
  8523.       first
  8524.     the IBM AT BIOS and many other BIOSes use only the low four bits of
  8525.       DH (head number) since the WD-1003 controller which is the standard
  8526.       AT controller (and the controller that IDE emulates) only supports
  8527.       16 heads
  8528.     not all controller support sector types 20h and 40h
  8529.     under Windows95, an application must issue a physical volume lock on
  8530.       the drive via INT 21/AX=440Dh before it can successfully write to
  8531.       the disk with this function
  8532. SeeAlso: AH=05h"FLOPPY",AH=06h"FIXED",AH=07h"FIXED",AH=0Fh,AH=18h,AH=1Ah
  8533. --------d-1305-------------------------------
  8534. INT 13 - Future Domain SCSI BIOS - SEND SCSI MODE SELECT COMMAND
  8535.     AH = 05h
  8536.     DL = hard drive ID
  8537.     ES:BX -> mode select data (see #0146)
  8538. Return: CF set on error
  8539.     CF clear if successful
  8540.     AH = status code (see #0144)
  8541. Notes:    this function can be called before AH=07h"SCSI" or AH=06h"SCSI" to
  8542.       format a SCSI disk with the desired parameters
  8543.     the mode select data below is from the SCSI-1 specification
  8544.     the TMC-950 does not support any Future Domain BIOS calls; instead,
  8545.       it provides a full CAM implementation (see INT 4F/AX=8100h)
  8546. SeeAlso: AH=06h"SCSI",AH=07h"SCSI",INT 4F/AX=8100h
  8547.  
  8548. Format of Future Domain SCSI mode select data:
  8549. Offset    Size    Description    (Table 0146)
  8550.  00h    BYTE    number of bytes of remaining data (12 + vendor unique length)
  8551.  01h    BYTE    reserved (0)
  8552.  02h    BYTE    medium type (0 for hard disk)
  8553.  03h    BYTE    reserved (0)
  8554.  04h    BYTE    block descriptor length (8)
  8555.  05h    BYTE    density code (0 for hard disk)
  8556.  06h  3 BYTEs    (big-endian) number of blocks (000000h for entire disk)
  8557.  09h    BYTE    reserved (0)
  8558.  0Ah  3 BYTEs    (big-endian) block length (512 standard, or 256)
  8559.  0Dh    ???    vendor-specific parameter bytes (optional)
  8560. --------d-13057FSI324D-----------------------
  8561. INT 13 - 2M - FORMAT TRACK
  8562.     AX = 057Fh
  8563.     SI = 324Dh ("2M")
  8564.     CH = track number
  8565.     DH = head number
  8566.     DL = drive number
  8567.     ES:BX -> boot sector of future 2M diskette
  8568. Return: CF set on error
  8569.     CF clear if successful
  8570.     AH = status (see #0144)
  8571. Program: 2M is a TSR developed by Ciriaco Garcia de Celis to support
  8572.       non standard diskettes with 820-902/1476-1558K (5.25 DD/HD)
  8573.       and 984-1066/1804-1886K/3608-3772K (3.5 DD/HD/ED)
  8574. Notes:    it is not necessary to call AH=17h or AH=18h first (will be ignored)
  8575.     the diskette format must always begin on cylinder 0 head 0
  8576.     the boot sector can be obtained from an already-formatted 2M diskette
  8577.       (by calling AH=02h with head number 00h in 2M v1.x and with head
  8578.       number 80h for 2M v2+)
  8579.     the installation check for 2M must search for a "CiriSOFT:2M:1.3" or
  8580.       "CiriSOFT:2MX:3.0" or similar (recomended ":2M:", ":2MX:", or ":2MB:"
  8581.       substrings) in CiriSOFT TSR interface
  8582.     since 2M v2.0, the BOOT sector is emulated using the first physical
  8583.       sector of FAT2; the second-sixth physical sectors of FAT2 in HD or ED
  8584.       diskettes store the SuperBOOT code. To skip the FAT2 emulation (using
  8585.       FAT1) of 2M, in order to read the SuperBOOT code, head number must be
  8586.       80h-81h instead 0-1 (bit 7 active) in standard read/write functions.
  8587.       This lets diskcopy programs format 2M target diskettes copying
  8588.       SuperBOOT code. If the target diskette is already 2MF formatted
  8589.       (containing boot code) this trick it is not necessary.
  8590.     when using STV technology (offset 65 of boot sector equal to 1) it is
  8591.       necessary to write the full track before formatting (except track 0
  8592.       side 0) to complete the format and skip future CRC errors on read; in
  8593.       track 0 side 1 the head used must be 81h instead 1. Diskcopy programs
  8594.       may do a format-write-verify sequential phases to improve performance
  8595. SeeAlso: AH=05h"FLOPPY",AH=18h/CX=5055h,INT 2F"CiriSOFT"
  8596. --------B-1306-------------------------------
  8597. INT 13 - FIXED DISK - FORMAT TRACK AND SET BAD SECTOR FLAGS (XT,PORT)
  8598.     AH = 06h
  8599.     AL = interleave value
  8600.     CH = cylinder number (bits 8,9 in high bits of CL)
  8601.     CL = sector number
  8602.     DH = head
  8603.     DL = drive
  8604. Return: AH = status code (see #0144)
  8605. Note:    AWARD AT BIOS and AMI 386sx BIOS have been extended to handle more
  8606.       than 1024 cylinders by placing bits 10 and 11 of the cylinder number
  8607.       into bits 6 and 7 of DH
  8608. SeeAlso: AH=05h"FIXED",AH=07h"FIXED"
  8609. --------d-1306-------------------------------
  8610. INT 13 - Future Domain SCSI BIOS - FORMAT DRIVE WITH BAD SECTOR MAPPING
  8611.     AH = 06h
  8612.     AL = interleave
  8613.          (0 = default, 1 = consecutive sectors, 2 - 255 = vendor unique)
  8614.     DL = hard drive ID
  8615.     DH = defect list info (see #0147)
  8616.     ES:BX -> defect table A, B or C (see #0148,#0149,#0150)
  8617. Return: CF set on error
  8618.     CF clear if successful
  8619.     AH = status code (see #0144)
  8620. Notes:    block addresses must be in ascending order (for table B, cylinder is
  8621.       most significant, byte from index least significant; for table C,
  8622.       cylinder is most significant, sector number least significant)
  8623.     table B defect bytes from index of FFFFFFFFh indicates that the entire
  8624.       track shall be reassigned
  8625.     table C defect sector number of FFFFFFFFh indicates that the entire
  8626.       track shall be reassigned
  8627.     the TMC-950 does not support any Future Domain BIOS calls; instead,
  8628.       it provides a full CAM implementation (see INT 4F/AX=8100h)
  8629. SeeAlso: AH=05h"SCSI",AH=06h"FIXED",AH=07h"SCSI"
  8630.  
  8631. Bitfields for Future Domain SCSI defect list info:
  8632. Bit(s)    Description    (Table 0147)
  8633.  7-5    drive LUN
  8634.  4    defect list is available
  8635.  3    defect list is complete (erase drive's defect list)
  8636.  2-0    defect table format
  8637.     (000=use defect table A, 100=use defect table B,
  8638.      101=use defect table C)
  8639.  
  8640. Format of Future Domain SCSI defect table A:
  8641. Offset    Size    Description    (Table 0148)
  8642.  00h    WORD    number of bytes remaining in table
  8643.  02h    BYTE    reserved (0)
  8644.  03h    BYTE    reserved (0)
  8645.  04h    WORD    (big-endian) defect list length (4*number of defects)
  8646.  06h  4 DWORDs    (big-endian) defect block addresses
  8647.  
  8648. Format of Future Domain SCSI defect table B:
  8649. Offset    Size    Description    (Table 0149)
  8650.  00h    WORD    number of bytes remaining in table
  8651.  02h    BYTE    reserved (0)
  8652.  03h    BYTE    reserved (0)
  8653.  04h    WORD    (big-endian) defect list length (8*number of defects)
  8654.  06h 8N BYTEs    defect list [array] (see #0151)
  8655.  
  8656. Format of Future Domain SCSI defect table C:
  8657. Offset    Size    Description    (Table 0150)
  8658.  00h    WORD    number of bytes remaining in table
  8659.  02h    BYTE    reserved (0)
  8660.  03h    BYTE    reserved (0)
  8661.  04h    WORD    (big-endian) defect list length (8*number of defects)
  8662.  06h 8N BYTEs    defect list [array] (see #0151)
  8663.  
  8664. Format of Future Domain SCSI defect list entry:
  8665. Offset    Size    Description    (Table 0151)
  8666.  00h  3 BYTEs    (big-endian) cylinder number of defect
  8667.  03h    BYTE    head number of defect
  8668.  04h    DWORD    (big-endian) defect bytes from index
  8669. --------d-1306-------------------------------
  8670. INT 13 - Adaptec AHA-154xA/Bustek BT-542 BIOS - IDENTIFY SCSI DEVICES
  8671.     AH = 06h
  8672. Return: AH = status code (see #0144)
  8673.     CF clear if successful
  8674.         AL = first drive supported
  8675.         (80h nonconcurrent operation, 81h concurrent operation)
  8676.     CF set on error
  8677. Desc:    determine the number of the first supported SCSI drive
  8678. Note:    the return value is 80h when two SCSI drives are supported, 81h if
  8679.       only one SCSI drive is installed
  8680. SeeAlso: AH=08h"PC",#0629
  8681. --------d-1306-------------------------------
  8682. INT 13 - V10DISK.SYS - READ DELETED SECTORS
  8683.     AH = 06h
  8684.     AL = number of sectors
  8685.     CH = cylinder number (bits 8,9 in high bits of CL)
  8686.     CL = sector number
  8687.     DH = head
  8688.     DL = drive
  8689.     ES:BX -> buffer
  8690. Return: AH = status code (see #0144)
  8691. Program: V10DISK.SYS is a driver for the Flagstaff Engineering 8" floppies
  8692. SeeAlso: AH=02h,AH=07h"V10DISK.SYS"
  8693. --------B-1307-------------------------------
  8694. INT 13 - FIXED DISK - FORMAT DRIVE STARTING AT GIVEN TRACK (XT,PORT)
  8695.     AH = 07h
  8696.     AL = interleave value (XT only)
  8697.     ES:BX = 512-byte format buffer (see AH=05h)
  8698.     CH = cylinder number (bits 8,9 in high bits of CL)
  8699.     CL = sector number
  8700.     DH = head
  8701.     DL = drive
  8702. Return: AH = status code (see #0144)
  8703. Note:    AWARD AT BIOS and AMI 386sx BIOS have been extended to handle more
  8704.       than 1024 cylinders by placing bits 10 and 11 of the cylinder number
  8705.       into bits 6 and 7 of DH
  8706. SeeAlso: AH=05h"FIXED",AH=06h"FIXED",AH=1Ah
  8707. --------d-1307-------------------------------
  8708. INT 13 - Future Domain SCSI BIOS - FORMAT DRIVE
  8709.     AH = 07h
  8710.     AL = interleave (0 = default, 1 = consecutive sectors,
  8711.            2 - 255 = vendor unique)
  8712.     DL = hard drive ID
  8713. Return: CF set on error
  8714.     CF clear if successful
  8715.     AH = status code (see #0144)
  8716. SeeAlso: AH=05h"SCSI",AH=06h"SCSI",AH=07h"FIXED"
  8717. --------d-1307-------------------------------
  8718. INT 13 - V10DISK.SYS - WRITE DELETED SECTORS
  8719.     AH = 07h
  8720.     AL = number of sectors
  8721.     CH = cylinder number (bits 8,9 in high bits of CL)
  8722.     CL = sector number
  8723.     DH = head
  8724.     DL = drive
  8725.     ES:BX -> buffer
  8726. Return: AH = status code (see #0144)
  8727. Program: V10DISK.SYS is a driver for the Flagstaff Engineering 8" floppies
  8728. SeeAlso: AH=03h,AH=06h"V10DISK.SYS"
  8729. --------B-1308-------------------------------
  8730. INT 13 - DISK - GET DRIVE PARAMETERS (PC,XT286,CONV,PS,ESDI,SCSI)
  8731.     AH = 08h
  8732.     DL = drive (bit 7 set for hard disk)
  8733. Return: CF set on error
  8734.         AH = status (07h) (see #0144)
  8735.     CF clear if successful
  8736.         AH = 00h
  8737.         BL = drive type (AT/PS2 floppies only) (see #0152)
  8738.         CH = low eight bits of maximum cylinder number
  8739.         CL = maximum sector number (bits 5-0)
  8740.          high two bits of maximum cylinder number (bits 7-6)
  8741.         DH = maximum head number
  8742.         DL = number of drives
  8743.         ES:DI -> drive parameter table (floppies only)
  8744. Notes:    may return successful even though specified drive is greater than the
  8745.       number of attached drives of that type (floppy/hard); check DL to
  8746.       ensure validity
  8747.     for systems predating the IBM AT, this call is only valid for hard
  8748.       disks, as it is implemented by the hard disk BIOS rather than the
  8749.       ROM BIOS
  8750.     Toshiba laptops with HardRAM return DL=02h when called with DL=80h,
  8751.       but fail on DL=81h.  The BIOS data at 40h:75h correctly reports 01h.
  8752.     may indicate only two drives present even if more are attached; to
  8753.       ensure a correct count, one can use AH=15h to scan through possible
  8754.       drives
  8755.     for BIOSes which reserve the last cylinder for testing purposes, the
  8756.       cylinder count is automatically decremented
  8757.     on PS/1s with IBM ROM DOS 4, nonexistent drives return CF clear,
  8758.       BX=CX=0000h, and ES:DI = 0000h:0000h
  8759. SeeAlso: AH=06h"Adaptec",AH=13h"SyQuest",AH=48h,AH=15h,INT 1E
  8760. SeeAlso: INT 41"HARD DISK 0"
  8761.  
  8762. (Table 0152)
  8763. Values for diskette drive type:
  8764.  01h    360K
  8765.  02h    1.2M
  8766.  03h    720K
  8767.  04h    1.44M
  8768.  05h    ??? (reportedly an obscure drive type shipped on some IBM machines)
  8769.     2.88M on some machines (at least AMI 486 BIOS)
  8770.  06h    2.88M
  8771.  10h    ATAPI Removable Media Device
  8772. --------d-1308-------------------------------
  8773. INT 13 - V10DISK.SYS - SET FORMAT
  8774.     AH = 08h
  8775.     AL = number of sectors
  8776.     CH = cylinder number (bits 8,9 in high bits of CL)
  8777.     CL = sector number
  8778.     DH = head
  8779.     DL = drive
  8780. Return: AH = status code (see #0144)
  8781. Program: V10DISK.SYS is a driver for the Flagstaff Engineering 8" floppies
  8782. Note:    details not available
  8783. SeeAlso: AH=03h,AH=06h"V10DISK.SYS"
  8784. --------y-130800DLF0-------------------------
  8785. INT 13 - SecureDrive - INSTALLATION CHECK
  8786.     AX = 08000h
  8787.     DL = F0h
  8788. Return: AX = EDCBh for version 1.0-1.2
  8789.     AX = EDCCh for version 1.3
  8790.     CX = code segment
  8791.     DX = data address within code segment
  8792. Program: SecureDrive by Mike Ingle <mikeingle@delphi.com> allows you to create
  8793.       an encrypted partition on your harddisk.
  8794. --------B-1309-------------------------------
  8795. INT 13 - HARD DISK - INITIALIZE CONTROLLER WITH DRIVE PARAMETERS (AT,PS)
  8796.     AH = 09h
  8797.     DL = drive (80h for first, 81h for second)
  8798. Return: CF clear if successful
  8799.     CF set on error
  8800.     AH = status (see #0144)
  8801. Notes:    on the PC and XT, this function uses the parameter table pointed at by
  8802.       INT 41
  8803.     on the AT and later, this function uses the parameter table pointed at
  8804.       by INT 41 if DL=80h, and the parameter table pointed at by INT 46 if
  8805.       DL=81h
  8806. SeeAlso: INT 41"HARD DISK 0",INT 46"HARD DISK 1"
  8807. --------B-130A-------------------------------
  8808. INT 13 - HARD DISK - READ LONG SECTOR(S) (AT and later)
  8809.     AH = 0Ah
  8810.     AL = number of sectors
  8811.     CH = low eight bits of cylinder number
  8812.     CL = sector number (bits 5-0)
  8813.          high two bits of cylinder number (bits 7-6)
  8814.     DH = head number
  8815.     DL = drive number (80h = first, 81h = second)
  8816.     ES:BX -> data buffer
  8817. Return: CF clear if successful
  8818.     CF set on error
  8819.     AH = status (see #0144)
  8820.     AL = number of sectors transferred
  8821. Notes:    this function reads in four to seven bytes of error-correcting code
  8822.       along with each sector's worth of information
  8823.     data errors are not automatically corrected, and the read is aborted
  8824.       after the first sector with an ECC error
  8825.     used for diagnostics only on PS/2 systems
  8826. SeeAlso: AH=02h,AH=0Bh
  8827. --------B-130B-------------------------------
  8828. INT 13 - HARD DISK - WRITE LONG SECTOR(S) (AT and later)
  8829.     AH = 0Bh
  8830.     AL = number of sectors
  8831.     CH = low eight bits of cylinder number
  8832.     CL = sector number (bits 5-0)
  8833.          high two bits of cylinder number (bits 7-6)
  8834.     DH = head number
  8835.     DL = drive number (80h = first, 81h = second)
  8836.     ES:BX -> data buffer
  8837. Return: CF clear if successful
  8838.     CF set on error
  8839.     AH = status (see #0144)
  8840.     AL = number of sectors transferred
  8841. Notes:    each sector's worth of data must be followed by four to seven bytes of
  8842.       error-correction information
  8843.     used for diagnostics only on PS/2 systems
  8844. SeeAlso: AH=03h,AH=0Ah
  8845. --------B-130C-------------------------------
  8846. INT 13 - HARD DISK - SEEK TO CYLINDER
  8847.     AH = 0Ch
  8848.     CH = low eight bits of cylinder number
  8849.     CL = sector number (bits 5-0)
  8850.         high two bits of cylinder number (bits 7-6)
  8851.     DH = head number
  8852.     DL = drive number (80h = first, 81h = second hard disk)
  8853. Return: CF set on error
  8854.     CF clear if successful
  8855.     AH = status (see #0144)
  8856. SeeAlso: AH=00h,AH=02h,AH=0Ah,AH=47h
  8857. --------B-130D-------------------------------
  8858. INT 13 - HARD DISK - RESET HARD DISKS
  8859.     AH = 0Dh
  8860.     DL = drive number (80h = first, 81h = second hard disk)
  8861. Return: CF set on error
  8862.     CF clear if successful
  8863.     AH = status (see #0144)
  8864. Notes:    reinitializes the hard disk controller, resets the specified drive's
  8865.       parameters, and recalibrates the drive's heads (seek to track 0)
  8866.     for PS/2 35SX, 35LS, 40SX and L40SX, as well as many other systems,
  8867.       both the master drive and the slave drive respond to the Reset
  8868.       function that is issued to either drive
  8869.     not for PS/2 ESDI drives
  8870. SeeAlso: AH=00h,INT 21/AH=0Dh
  8871. --------B-130E-------------------------------
  8872. INT 13 - HARD DISK - READ SECTOR BUFFER (XT only)
  8873.     AH = 0Eh
  8874.     DL = drive number (80h = first, 81h = second hard disk)
  8875.     ES:BX -> buffer
  8876. Return: CF set on error
  8877.     CF clear if successful
  8878.     AH = status code (see #0144)
  8879. Notes:    transfers controller's sector buffer.  No data is read from the drive
  8880.     used for diagnostics only on PS/2 systems
  8881. SeeAlso: AH=0Ah
  8882. --------B-130F-------------------------------
  8883. INT 13 - HARD DISK - WRITE SECTOR BUFFER (XT only)
  8884.     AH = 0Fh
  8885.     DL = drive number (80h = first, 81h = second hard disk)
  8886.     ES:BX -> buffer
  8887. Return: CF set on error
  8888.     CF clear if successful
  8889.     AH = status code (see #0144)
  8890. Notes:    does not write data to the drive
  8891.     should be called before formatting to initialize an XT-type
  8892.       controller's sector buffer
  8893.     used for diagnostics only on PS/2 systems
  8894. SeeAlso: AH=0Bh
  8895. --------B-1310-------------------------------
  8896. INT 13 - HARD DISK - CHECK IF DRIVE READY
  8897.     AH = 10h
  8898.     DL = drive number (80h = first, 81h = second hard disk)
  8899. Return: CF set on error
  8900.     CF clear if successful
  8901.     AH = status (see #0144 at AH=01h)
  8902. --------B-1311-------------------------------
  8903. INT 13 - HARD DISK - RECALIBRATE DRIVE
  8904.     AH = 11h
  8905.     DL = drive number (80h = first, 81h = second hard disk)
  8906. Return: CF set on error
  8907.     CF clear if successful
  8908.     AH = status (see #0144 at AH=01h)
  8909. Note:    causes hard disk controller to seek the specified drive to cylinder 0
  8910. SeeAlso: AH=00h,AH=0Ch,AH=19h"FIXED DISK"
  8911. --------B-1312-------------------------------
  8912. INT 13 - HARD DISK - CONTROLLER RAM DIAGNOSTIC (XT,PS)
  8913.     AH = 12h
  8914.     DL = drive number (80h = first, 81h = second hard disk)
  8915. Return: CF set on error
  8916.     CF clear if successful
  8917.     AH = status code (see #0144 at AH=01h)
  8918.     AL = 00h
  8919. SeeAlso: AH=13h,AH=14h
  8920. --------d-1312-------------------------------
  8921. INT 13 - Future Domain SCSI CONTROLLER - STOP SCSI DISK
  8922.     AH = 12h
  8923.     DL = hard drive ID
  8924. Return: CF set on error
  8925.     CF clear if successful
  8926.     AH = status code (see #0144 at AH=01h)
  8927. Notes:    available at least on the TMC-870 8-bit SCSI controller BIOS v6.0A
  8928.     if the given drive is a SCSI device, the SCSI Stop Unit command is sent
  8929.       and either "Disk prepared for shipping" or "Disk Stop command failed"
  8930.       is displayed
  8931.     the TMC-950 does not support any Future Domain BIOS calls; instead,
  8932.       it provides a full CAM implementation (see INT 4F/AX=8100h)
  8933. --------d-1312-------------------------------
  8934. INT 13 - SyQuest - START/STOP SCSI DISK
  8935.     AH = 12h
  8936.     AL = subfunction
  8937.         00h start disk
  8938.         01h stop disk
  8939.     CX = wait flag
  8940.         00h wait for ready
  8941.         01h don't wait for ready
  8942.     DL = hard drive ID (bit 7 for hard disks must be set)
  8943. Return: CF set on error
  8944.     CF clear if successful
  8945.     AH = status
  8946.         00h successful
  8947.         01h invalid function request
  8948.         80h timeout
  8949. SeeAlso: AH=12h"Future Domain",AH=13h"SyQuest"
  8950. --------B-1313-------------------------------
  8951. INT 13 - HARD DISK - DRIVE DIAGNOSTIC (XT,PS)
  8952.     AH = 13h
  8953.     DL = drive number (80h = first, 81h = second hard disk)
  8954. Return: CF set on error
  8955.     CF clear if successful
  8956.     AH = status code (see #0144 at AH=01h)
  8957.     AL = 00h
  8958. SeeAlso: AH=12h"HARD DISK",AH=14h"HARD DISK"
  8959. --------d-1313-------------------------------
  8960. INT 13 - SyQuest - READ DRIVE PARAMATERS (for DOS 5+)
  8961.     AH = 13h
  8962.     DL = drive ID (bit 7 set for hard disks)
  8963. Return: CF set on error
  8964.         AH = status (07h) (see #0144 at AH=01h)
  8965.     CF clear if successful
  8966.         AH = 00h
  8967.         BL = drive type (AT/PS2 floppies only) (see #0152)
  8968.         CH = low eight bits of maximum cylinder number
  8969.         CL = maximum sector number (bits 5-0)
  8970.          high two bits of maximum cylinder number (bits 7-6)
  8971.         DH = maximum head number
  8972.         DL = number of drives
  8973.         ES:DI -> drive parameter table (floppies only)
  8974. Notes:    the return values are identical to the standard INT 13/AH=08h, but the
  8975.       number of drives is not limited to 2, so
  8976.     scanning all possible drive numbers with the Read DASD Type call
  8977.       (AH=15h) should generally be preferred to determine the number of
  8978.       drives attached to the system.
  8979. SeeAlso: AH=08h"PC",AH=12h"SyQuest",AH=15h,AH=59h"SyQuest"
  8980. --------B-1314-------------------------------
  8981. INT 13 - HARD DISK - CONTROLLER INTERNAL DIAGNOSTIC
  8982.     AH = 14h
  8983. Return: CF set on error
  8984.     CF clear if successful
  8985.     AH = status code (see #0144 at AH=01h)
  8986.     AL = 00h
  8987. SeeAlso: AH=12h,AH=13h
  8988. --------B-1315-------------------------------
  8989. INT 13 - DISK - GET DISK TYPE (XT 1/10/86 or later,XT286,AT,PS)
  8990.     AH = 15h
  8991.     DL = drive number (bit 7 set for hard disk)
  8992. Return: CF clear if successful
  8993.         AH = type code
  8994.         00h no such drive
  8995.         01h floppy without change-line support
  8996.         02h floppy (or other removable drive) with change-line support
  8997.         03h hard disk
  8998.             CX:DX = number of 512-byte sectors
  8999.     CF set on error
  9000.         AH = status (see #0144 at AH=01h)
  9001. Note:    SyQuest can report type 01h or 02h for 'hard disks', since its media
  9002.       is removable
  9003. SeeAlso: AH=08h,AH=16h,AH=17h,AH=19h"SCSI"
  9004. --------B-1316-------------------------------
  9005. INT 13 - FLOPPY DISK - DETECT DISK CHANGE (XT 1/10/86 or later,XT286,AT,PS)
  9006.     AH = 16h
  9007.     DL = drive number (00h-7Fh)
  9008. Return: CF clear if change line inactive
  9009.         AH = 00h (disk not changed)
  9010.     CF set if change line active
  9011.         AH = status
  9012.         01h invalid command (SyQuest)
  9013.         06h change line active or not supported
  9014.         80h drive not ready or not present
  9015. Notes:    call AH=15h first to determine whether the drive supports a change
  9016.       line
  9017.     this call also clears the media-change status, so that a disk change
  9018.       is only reported once
  9019. BUG:    some versions of Award 386 Modular BIOS and AMI BIOS fail to clear
  9020.       the media-change status
  9021. SeeAlso: AH=15h,AH=49h
  9022. --------B-1317-------------------------------
  9023. INT 13 - FLOPPY DISK - SET DISK TYPE FOR FORMAT (AT,PS)
  9024.     AH = 17h
  9025.     AL = format type
  9026.         01h = 320/360K disk in 360K drive
  9027.         02h = 320/360K disk in 1.2M drive
  9028.         03h = 1.2M disk in 1.2M drive
  9029.         04h = 720K disk in 720K or 1.44M drive
  9030.     DL = drive number
  9031. Return: CF set on error
  9032.     CF clear if successful
  9033.     AH = status (see #0144 at AH=01h)
  9034. Note:    this function does not handle 1.44M drives; use AH=18h instead
  9035. SeeAlso: AH=15h,AH=18h
  9036. --------d-131700-----------------------------
  9037. INT 13 - Future Domain SCSI CONTROLLER - GET INQUIRY INFO FROM SCSI DEVICE
  9038.     AX = 1700h
  9039.     CL = length of buffer
  9040.     DL = hard drive ID
  9041.     ES:BX -> buffer for info (see #0153)
  9042. Return: CF clear if successful
  9043.         CH = number of bytes returned in buffer???
  9044.     CF set on error
  9045.         AH = status code (see #0144 at AH=01h)
  9046. Notes:    this function is not available with 8-bit controller ROM versions < 7.0
  9047.     information block bytes 5-n are vendor-specific in older SCSI devices
  9048.     the TMC-950 does not support any Future Domain BIOS calls; instead,
  9049.       it provides a full CAM implementation (see INT 4F/AX=8100h)
  9050. SeeAlso: AH=18h"SCSI",AH=1Bh"SCSI"
  9051.  
  9052. Format of Future Domain SCSI inquiry information block:
  9053. Offset    Size    Description    (Table 0153)
  9054.  00h    BYTE    device type
  9055.         bits 0-4: peripheral device type (see #0154)
  9056.         bits 5-7: peripheral qualifier (see #0155)
  9057.  01h    BYTE    device type modifier
  9058.         bits 0-6: device type modifier
  9059.         bit 7: removable medium
  9060.  02h    BYTE    SCSI version (see #0156)
  9061.  03h    BYTE    data format/capabilities (see #0157)
  9062.  04h    BYTE    additional data length (total remaining bytes)
  9063.  05h  2 BYTEs    reserved
  9064.  07h    BYTE    device capabilities (see #0158)
  9065.  08h  8 BYTEs    vendor identification (space-padded ASCII)
  9066.  10h  8 BYTEs    product identification (space-padded ASCII)
  9067.  20h  4 BYTEs    product revision level (space-padded ASCII)
  9068.  24h 20 BYTEs    vendor specific
  9069.  38h 40 BYTEs    reserved
  9070.  60h    var    vendor specific parameters
  9071.  
  9072. (Table 0154)
  9073. Values for Future Domain SCSI peripheral device type:
  9074.  00h    direct-access device (e.g., magnetic disk)
  9075.  01h    sequential-access device (e.g., magnetic tape)
  9076.  02h    printer device
  9077.  03h    processor device
  9078.  04h    write-once device (e.g., some optical disks)
  9079.  05h    CD-ROM device
  9080.  06h    scanner device
  9081.  07h    optical memory device (e.g., some optical disks)
  9082.  08h    medium changer device (e.g., jukeboxes)
  9083.  09h    communications device
  9084.  0Ah    (defined by ASC IT8)
  9085.  0Bh    (defined by ASC IT8)
  9086.  0Ch-1Eh reserved
  9087.  1Fh    unknown or no device type
  9088.  
  9089. (Table 0155)
  9090. Values for Future Domain SCSI peripheral qualifier:
  9091.  000b    device is currently connected to this logical unit and available
  9092.  001b    target is capable of supporting the specified peripheral, but the
  9093.       physical device is not currently connected to this logical unit
  9094.  010b    reserved
  9095.  011b    target can't support a physical device on this logical unit
  9096.  1xxb    vendor specific
  9097.  
  9098. Bitfields for Future Domain SCSI version:
  9099. Bit(s)    Description    (Table 0156)
  9100.  0-2    ANSI-approved version
  9101.     000 device might or might not comply to ANSI standard
  9102.     001 device complies to ANSI SCSI-1
  9103.     010 device complies to ANSI SCSI-2
  9104.     other reserved
  9105.  3-5    ECMA version
  9106.  6-7    ISO version
  9107.  
  9108. Bitfields for Future Domain SCSI data format/capabilities:
  9109. Bit(s)    Description    (Table 0157)
  9110.  0-2    response data format
  9111.     000 information block is as specified in SCSI-1
  9112.     001 information block is as specified in CCS
  9113.     010 information block is as specified in SCSI-2
  9114.     other reserved
  9115.  4-5    reserved
  9116.  6    terminate I/O process supported
  9117.  7    asynchronous event notification supported
  9118.  
  9119. Bitfields for Future Domain SCSI device capabilities:
  9120. Bit(s)    Description    (Table 0158)
  9121.  0    device responds to RESET with a hard RESET
  9122.  1    tagged command queuing supported
  9123.  2    reserved
  9124.  3    linked commands supported
  9125.  4    synchronous data transfer supported
  9126.  5    16-transfers supported
  9127.  6    32-transfers supported
  9128.  7    relative addressing supported
  9129. --------!---Section--------------------------
  9130.